/* ============================================================
   CHECKOUT PAGE — Custom Style
   ============================================================ */

.elementor-widget-woocommerce-checkout-page {
  --ttc-primary: var(--e-global-color-primary, #B5541A);
  --ttc-secondary: var(--e-global-color-secondary, #3D2314);
  --ttc-text: var(--e-global-color-text, #2E1A0E);
  --ttc-accent: var(--e-global-color-accent, #D4A017);
  --ttc-surface: var(--e-global-color-d67c2b9, #FDF6EC);
  --ttc-surface-soft: var(--e-global-color-46436ff, #F5ECD7);
  --ttc-surface-strong: var(--e-global-color-fb07e31, #FFFDF8);
  --ttc-muted: var(--e-global-color-11cde0c, #8A6E58);
  --ttc-green: var(--e-global-color-e4f978e, #4A7C59);
  --ttc-red: var(--e-global-color-ea4ec7f, #C0392B);
  --ttc-font-heading: var(--e-global-typography-primary-font-family, "Cormorant Garamond", serif);
  --ttc-font-body: var(--e-global-typography-text-font-family, "Lora", serif);
  --ttc-font-accent: var(--e-global-typography-accent-font-family, "Jost", sans-serif);
  --ttc-font-button: "DM Sans", sans-serif;
  --ttc-radius: 4px;
  --ttc-radius-sm: 2px;
  --ttc-border: rgba(200, 118, 42, 0.15);
  --ttc-shadow: 0 4px 24px rgba(92, 61, 30, 0.07), 0 1px 3px rgba(92, 61, 30, 0.04);
  --ttc-shadow-hover: 0 8px 32px rgba(92, 61, 30, 0.12), 0 2px 6px rgba(92, 61, 30, 0.06);
  font-family: var(--ttc-font-body) !important;
}

/* ── Layout ── */
.elementor-widget-woocommerce-checkout-page .e-checkout__container {
  gap: 36px !important;
  align-items: start !important;
  padding: 20px;
}

.elementor-widget-woocommerce-checkout-page .e-checkout__column {
  min-width: 0 !important;
}

.elementor-widget-woocommerce-checkout-page .e-checkout__column-inner.e-sticky-right-column {
  top: 110px !important;
  display: grid !important;
  gap: 2px !important;
}

/* ── Hide empty notices ── */
.elementor-widget-woocommerce-checkout-page .woocommerce-notices-wrapper:empty {
  display: none !important;
}

/* ── WooCommerce notices ── */
.elementor-widget-woocommerce-checkout-page .woocommerce-error,
.elementor-widget-woocommerce-checkout-page .woocommerce-info,
.elementor-widget-woocommerce-checkout-page .woocommerce-message {
  margin: 0 0 20px !important;
  padding: 14px 20px !important;
  border: 1px solid var(--ttc-border) !important;
  border-left: 4px solid var(--ttc-green) !important;
  border-radius: var(--ttc-radius-sm) !important;
  background: rgba(74, 124, 89, 0.06) !important;
  box-shadow: none !important;
  color: var(--ttc-text) !important;
  font-family: var(--ttc-font-body) !important;
  list-style: none !important;
}

/* ── Billing/Shipping columns ── */
.elementor-widget-woocommerce-checkout-page .col2-set {
  display: grid !important;
  margin: 0 !important;
}

.elementor-widget-woocommerce-checkout-page .col2-set .col-1,
.elementor-widget-woocommerce-checkout-page .col2-set .col-2 {
  width: 100% !important;
  float: none !important;
  margin: 0 !important;
}

/* ── Card sections ── */
.elementor-widget-woocommerce-checkout-page .woocommerce-billing-fields,
.elementor-widget-woocommerce-checkout-page .woocommerce-shipping-fields,
.elementor-widget-woocommerce-checkout-page .woocommerce-additional-fields,
.elementor-widget-woocommerce-checkout-page .e-checkout__order_review,
.elementor-widget-woocommerce-checkout-page .e-coupon-box,
.elementor-widget-woocommerce-checkout-page .e-checkout__order_review-2 {
  border: 1px solid var(--ttc-border) !important;
  border-radius: var(--ttc-radius) !important;
  background: var(--ttc-surface-strong) !important;
  box-shadow: var(--ttc-shadow) !important;
}

.elementor-widget-woocommerce-checkout-page .woocommerce-billing-fields,
.elementor-widget-woocommerce-checkout-page .woocommerce-shipping-fields,
.elementor-widget-woocommerce-checkout-page .woocommerce-additional-fields {
  padding: 28px 32px !important;
}

/* ── Section headings ── */
.elementor-widget-woocommerce-checkout-page .woocommerce-billing-fields > h3,
.elementor-widget-woocommerce-checkout-page .woocommerce-shipping-fields > h3,
.elementor-widget-woocommerce-checkout-page .woocommerce-additional-fields > h3,
.elementor-widget-woocommerce-checkout-page #order_review_heading {
  margin: 0 0 24px !important;
  padding-bottom: 0 !important;
  border: none !important;
  color: var(--ttc-secondary) !important;
  font-family: var(--ttc-font-heading) !important;
  font-size: 26px !important;
  line-height: 1.2 !important;
  font-weight: 700 !important;
}

/* ── Ship to different address ── */
.elementor-widget-woocommerce-checkout-page #ship-to-different-address {
  margin: 0 !important;
  padding-inline-start: 0 !important;
  margin-top: -10px !important;
}

.elementor-widget-woocommerce-checkout-page .woocommerce-form__label-for-checkbox {
  display: inline-flex !important;
  align-items: center !important;
  gap: 10px !important;
  color: var(--ttc-text) !important;
  font-family: var(--ttc-font-body) !important;
  font-size: 16px !important;
  font-weight: 500 !important;
}

.elementor-widget-woocommerce-checkout-page .woocommerce-form__input-checkbox {
  width: 16px !important;
  height: 16px !important;
  accent-color: var(--ttc-primary) !important;
}

/* ── Form grid ── */
.elementor-widget-woocommerce-checkout-page .woocommerce-billing-fields__field-wrapper,
.elementor-widget-woocommerce-checkout-page .woocommerce-shipping-fields__field-wrapper {
  display: grid !important;
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  gap: 16px 18px !important;
}

.elementor-widget-woocommerce-checkout-page .woocommerce-additional-fields__field-wrapper {
  display: grid !important;
  grid-template-columns: 1fr !important;
  gap: 16px !important;
}

.elementor-widget-woocommerce-checkout-page .form-row {
  float: none !important;
  width: auto !important;
  margin: 0 !important;
}

.elementor-widget-woocommerce-checkout-page .form-row-first,
.elementor-widget-woocommerce-checkout-page .form-row-last {
  grid-column: span 1 !important;
}

.elementor-widget-woocommerce-checkout-page .form-row-wide,
.elementor-widget-woocommerce-checkout-page .address-field,
.elementor-widget-woocommerce-checkout-page .notes {
  grid-column: 1 / -1 !important;
}

/* ── Form labels ── */
.elementor-widget-woocommerce-checkout-page label:not(.woocommerce-form__label-for-checkbox) {
  display: block !important;
  margin-bottom: 6px !important;
  color: var(--ttc-muted) !important;
  font-family: var(--ttc-font-accent) !important;
  font-size: 11px !important;
  font-weight: 500 !important;
  letter-spacing: 0.14em !important;
  text-transform: uppercase !important;
}

.elementor-widget-woocommerce-checkout-page .required_field .required {
  color: var(--ttc-red) !important;
}

/* ── Form inputs ── */
.elementor-widget-woocommerce-checkout-page input.input-text,
.elementor-widget-woocommerce-checkout-page textarea,
.elementor-widget-woocommerce-checkout-page select,
.elementor-widget-woocommerce-checkout-page .select2-selection--single,
.elementor-widget-woocommerce-checkout-page .e-coupon-anchor input.input-text {
  width: 100% !important;
  min-height: 48px !important;
  border: 1.5px solid rgba(200, 118, 42, 0.18) !important;
  border-radius: var(--ttc-radius-sm) !important;
  background: #fff !important;
  box-shadow: none !important;
  color: var(--ttc-text) !important;
  font-family: var(--ttc-font-body) !important;
  font-size: 14px !important;
  transition: border-color 0.2s ease !important;
}

.elementor-widget-woocommerce-checkout-page input.input-text,
.elementor-widget-woocommerce-checkout-page textarea,
.elementor-widget-woocommerce-checkout-page select,
.elementor-widget-woocommerce-checkout-page .e-coupon-anchor input.input-text {
  padding: 12px 14px !important;
}

.elementor-widget-woocommerce-checkout-page textarea {
  min-height: 110px !important;
  resize: vertical !important;
}

.elementor-widget-woocommerce-checkout-page input.input-text:focus,
.elementor-widget-woocommerce-checkout-page textarea:focus,
.elementor-widget-woocommerce-checkout-page select:focus {
  border-color: var(--ttc-primary) !important;
  outline: none !important;
  box-shadow: 0 0 0 3px rgba(181, 84, 26, 0.08) !important;
}

/* ── Select2 ── */
.elementor-widget-woocommerce-checkout-page .select2-container {
  width: 100% !important;
}

.elementor-widget-woocommerce-checkout-page .select2-container .select2-selection--single {
  display: flex !important;
  align-items: center !important;
  padding: 0 14px !important;
}

.elementor-widget-woocommerce-checkout-page .select2-container--default .select2-selection--single .select2-selection__rendered {
  padding: 0 !important;
  color: var(--ttc-text) !important;
  font-family: var(--ttc-font-body) !important;
  font-size: 14px !important;
  line-height: 1.4 !important;
}

.elementor-widget-woocommerce-checkout-page .select2-container--default .select2-selection--single .select2-selection__arrow {
  height: 100% !important;
  right: 12px !important;
}

.elementor-widget-woocommerce-checkout-page .select2-container--focus .select2-selection--single,
.elementor-widget-woocommerce-checkout-page .select2-container--open .select2-selection--single {
  border-color: var(--ttc-primary) !important;
  box-shadow: 0 0 0 3px rgba(181, 84, 26, 0.08) !important;
}

/* ── Strong value display ── */
.elementor-widget-woocommerce-checkout-page .woocommerce-input-wrapper > strong {
  display: flex !important;
  align-items: center !important;
  min-height: 48px !important;
  padding: 12px 14px !important;
  border: 1.5px solid rgba(200, 118, 42, 0.18) !important;
  border-radius: var(--ttc-radius-sm) !important;
  background: #fff !important;
  color: var(--ttc-text) !important;
  font-family: var(--ttc-font-body) !important;
  font-weight: 500 !important;
}

/* ── Order review ── */
.elementor-widget-woocommerce-checkout-page .e-checkout__order_review {
  padding: 32px !important;
}

.elementor-widget-woocommerce-checkout-page .e-checkout__order_review #order_review {
  margin: 0 !important;
}

.elementor-widget-woocommerce-checkout-page .woocommerce-checkout-review-order-table {
  border: 0 !important;
  background: transparent !important;
  margin: 0 !important;
}

.elementor-widget-woocommerce-checkout-page .woocommerce-checkout-review-order-table thead {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  margin: -1px !important;
  padding: 0 !important;
  overflow: hidden !important;
  clip: rect(0, 0, 0, 0) !important;
  border: 0 !important;
}

.elementor-widget-woocommerce-checkout-page .woocommerce-checkout-review-order-table tbody tr.cart_item {
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) auto !important;
  gap: 14px !important;
  align-items: start !important;
  padding: 16px 0 !important;
  border-bottom: 1px solid var(--ttc-border) !important;
}

.elementor-widget-woocommerce-checkout-page .woocommerce-checkout-review-order-table tbody td,
.elementor-widget-woocommerce-checkout-page .woocommerce-checkout-review-order-table tfoot th,
.elementor-widget-woocommerce-checkout-page .woocommerce-checkout-review-order-table tfoot td {
  border: 0 !important;
  background: transparent !important;
  padding: 0 !important;
}

.elementor-widget-woocommerce-checkout-page .woocommerce-checkout-review-order-table tbody td.product-name {
  color: var(--ttc-text) !important;
  font-family: var(--ttc-font-body) !important;
  font-size: 15px !important;
  line-height: 1.6 !important;
  max-width: 100% !important;
}

.elementor-widget-woocommerce-checkout-page .woocommerce-checkout-review-order-table .product-quantity {
  display: inline-block !important;
  margin-top: 6px !important;
  color: var(--ttc-muted) !important;
  font-family: var(--ttc-font-accent) !important;
  font-size: 10px !important;
  font-weight: 500 !important;
  letter-spacing: 0.14em !important;
  text-transform: uppercase !important;
}

.elementor-widget-woocommerce-checkout-page .woocommerce-checkout-review-order-table tbody td.product-total,
.elementor-widget-woocommerce-checkout-page .woocommerce-checkout-review-order-table tfoot td {
  text-align: right !important;
}

.elementor-widget-woocommerce-checkout-page .woocommerce-checkout-review-order-table .amount {
  color: var(--ttc-secondary) !important;
  font-family: var(--ttc-font-heading) !important;
  font-size: 18px !important;
  font-weight: 700 !important;
}

.elementor-widget-woocommerce-checkout-page .woocommerce-checkout-review-order-table tfoot tr {
  border-bottom: 1px solid rgba(200, 118, 42, 0.1) !important;
}

.elementor-widget-woocommerce-checkout-page .woocommerce-checkout-review-order-table tfoot tr.cart-subtotal,
.elementor-widget-woocommerce-checkout-page .woocommerce-checkout-review-order-table tfoot tr.order-total {
  display: flex !important;
  align-items: start !important;
  justify-content: space-between !important;
  gap: 16px !important;
  padding: 14px 0 !important;
}

.elementor-widget-woocommerce-checkout-page .woocommerce-checkout-review-order-table tfoot tr.shipping {
  display: grid !important;
  gap: 12px !important;
  padding: 14px 0 !important;
}

.elementor-widget-woocommerce-checkout-page .woocommerce-checkout-review-order-table tfoot tr.order-total {
  border-bottom: 0 !important;
  padding-bottom: 0 !important;
}

.elementor-widget-woocommerce-checkout-page .woocommerce-checkout-review-order-table tfoot th {
  color: var(--ttc-muted) !important;
  font-family: var(--ttc-font-accent) !important;
  font-size: 11px !important;
  font-weight: 500 !important;
  letter-spacing: 0.14em !important;
  text-transform: uppercase !important;
}

.elementor-widget-woocommerce-checkout-page .woocommerce-checkout-review-order-table tfoot tr.order-total th {
  color: var(--ttc-secondary) !important;
  font-size: 12px !important;
  padding-top: 20px !important;
}

.elementor-widget-woocommerce-checkout-page .woocommerce-checkout-review-order-table tfoot tr.order-total .amount {
  font-size: 28px !important;
  color: var(--ttc-primary) !important;
}

.elementor-widget-woocommerce-checkout-page .woocommerce-checkout-review-order-table tfoot tr.order-total td {
  padding-top: 20px !important;
}

/* ── Shipping methods ── */
.elementor-widget-woocommerce-checkout-page .woocommerce-shipping-methods {
  list-style: none !important;
  margin: 0 !important;
  padding: 0 !important;
  display: grid !important;
  gap: 8px !important;
}

.elementor-widget-woocommerce-checkout-page .woocommerce-shipping-methods li {
  list-style: none !important;
}

.elementor-widget-woocommerce-checkout-page .woocommerce-shipping-methods label {
  margin: 0 !important;
  text-align: left;
  color: var(--ttc-text) !important;
  font-family: var(--ttc-font-body) !important;
  font-size: 14px !important;
  font-weight: 500 !important;
  letter-spacing: normal !important;
  text-transform: none !important;
}

/* ── Coupon section ── */
.elementor-widget-woocommerce-checkout-page .e-coupon-box {
  padding: 24px 28px !important;
}

.elementor-widget-woocommerce-checkout-page .e-checkout-secondary-title,
.elementor-widget-woocommerce-checkout-page .e-coupon-anchor-description {
  margin: 0 !important;
  color: var(--ttc-muted) !important;
  font-family: var(--ttc-font-body) !important;
  font-size: 14px !important;
  line-height: 1.75 !important;
}

.elementor-widget-woocommerce-checkout-page .e-show-coupon-form {
  color: var(--ttc-primary) !important;
  font-family: var(--ttc-font-accent) !important;
  font-weight: 600 !important;
  text-decoration: none !important;
  transition: color 0.2s ease !important;
}

.elementor-widget-woocommerce-checkout-page .e-show-coupon-form:hover {
  color: var(--ttc-secondary) !important;
}

.elementor-widget-woocommerce-checkout-page .e-coupon-anchor {
  margin-top: 16px !important;
}

.elementor-widget-woocommerce-checkout-page .coupon-container-grid {
  display: flex !important;
  align-items: stretch !important;
  gap: 0 !important;
}

.elementor-widget-woocommerce-checkout-page .coupon-col-1 {
  flex: 1 !important;
  width: auto !important;
}

.elementor-widget-woocommerce-checkout-page .coupon-col-2 {
  width: auto !important;
  flex-shrink: 0 !important;
}

.elementor-widget-woocommerce-checkout-page .coupon-col-1 input.input-text {
  border-right: 0 !important;
  border-radius: var(--ttc-radius-sm) 0 0 var(--ttc-radius-sm) !important;
}

.elementor-widget-woocommerce-checkout-page .e-coupon-box .button.e-apply-coupon {
  min-height: 48px !important;
  padding: 0 24px !important;
  border: 1.5px solid var(--ttc-primary) !important;
  border-radius: 0 var(--ttc-radius-sm) var(--ttc-radius-sm) 0 !important;
  background: var(--ttc-primary) !important;
  color: #fff !important;
  font-family: var(--ttc-font-button) !important;
  font-size: 0.9375rem !important;
  font-weight: 500 !important;
  letter-spacing: 0.08em !important;
  text-transform: uppercase !important;
  cursor: pointer !important;
  transition: background 0.2s ease, transform 0.15s ease !important;
  white-space: nowrap !important;
}

.elementor-widget-woocommerce-checkout-page .e-coupon-box .button.e-apply-coupon:hover {
  background: #8C3D10 !important;
  border-color: #8C3D10 !important;
}

/* ── Payment section ── */
.elementor-widget-woocommerce-checkout-page .e-checkout__order_review-2 {
  padding: 24px 28px !important;
}

.elementor-widget-woocommerce-checkout-page #payment {
  background: transparent !important;
  padding: 0 !important;
  border: none !important;
}

.elementor-widget-woocommerce-checkout-page #payment .wc_payment_methods {
  list-style: none !important;
  margin: 0 0 16px !important;
  padding: 0 !important;
  display: grid !important;
  gap: 12px !important;
}

.elementor-widget-woocommerce-checkout-page #payment .wc_payment_methods li {
  list-style: none !important;
}

.elementor-widget-woocommerce-checkout-page #payment .woocommerce-info {
  margin: 0 !important;
  padding: 16px 18px !important;
  border: 1.5px dashed rgba(200, 118, 42, 0.24) !important;
  border-radius: var(--ttc-radius-sm) !important;
  background: rgba(255, 255, 255, 0.58) !important;
  color: var(--ttc-muted) !important;
  font-family: var(--ttc-font-body) !important;
  box-shadow: none !important;
}

/* ── Privacy policy ── */
.elementor-widget-woocommerce-checkout-page .woocommerce-privacy-policy-text {
  margin-bottom: 16px !important;
  color: var(--ttc-muted) !important;
  font-family: var(--ttc-font-body) !important;
  font-size: 13px !important;
  line-height: 1.75 !important;
}

.elementor-widget-woocommerce-checkout-page .woocommerce-privacy-policy-text p {
  margin: 0 !important;
}

.elementor-widget-woocommerce-checkout-page .woocommerce-privacy-policy-text a {
  color: var(--ttc-primary) !important;
  transition: color 0.2s ease !important;
}

.elementor-widget-woocommerce-checkout-page .woocommerce-privacy-policy-text a:hover {
  color: var(--ttc-secondary) !important;
}

/* ── Place order button ── */
.elementor-widget-woocommerce-checkout-page #place_order {
  width: 100% !important;
  min-height: 56px !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  border: 0 !important;
  border-radius: 2px !important;
  background: var(--ttc-primary) !important;
  color: var(--ttc-surface-strong) !important;
  font-family: var(--ttc-font-button) !important;
  font-size: 0.9375rem !important;
  font-weight: 500 !important;
  letter-spacing: 0.08em !important;
  text-transform: uppercase !important;
  cursor: pointer !important;
  transition: background 0.2s ease, transform 0.15s ease, box-shadow 0.2s ease !important;
  box-shadow: 0 4px 16px rgba(181, 84, 26, 0.25) !important;
}

.elementor-widget-woocommerce-checkout-page #place_order:hover {
  background: #8C3D10 !important;
  box-shadow: 0 6px 20px rgba(61, 35, 20, 0.3) !important;
  transform: translateY(-1px) !important;
}

.elementor-widget-woocommerce-checkout-page #place_order:active {
  transform: translateY(0) !important;
}

/* ── Shipping address block ── */
.shipping_address {
  margin-top: 58px !important;
  border-radius: 6px !important;
}

.elementor-widget-woocommerce-checkout-page .woocommerce-shipping-fields {
  margin: 20px 0;
}

/* ── Checkout price + numbers font ── */
.e-checkout__order_review .woocommerce-Price-amount,
.e-checkout__order_review .woocommerce-Price-amount *,
.e-checkout__order_review .product-quantity,
.e-checkout__order_review .woocommerce-Price-currencySymbol {
  font-family: 'Lora', serif !important;
  font-weight: 300;
  font-variant-numeric: lining-nums;
}

/* Purchase Summary */
.ttc-purchase-summary-page {
  background: #fffaf2;
  padding: clamp(28px, 5vw, 64px) 16px;
}

.ttc-purchase-summary-shell {
  width: min(100%, 1120px);
  margin: 0 auto;
}

.elementor-widget-woocommerce-purchase-summary {
  --ttc-primary: var(--e-global-color-primary, #B5541A);
  --ttc-secondary: var(--e-global-color-secondary, #3D2314);
  --ttc-text: var(--e-global-color-text, #2E1A0E);
  --ttc-surface-strong: var(--e-global-color-fb07e31, #FFFDF8);
  --ttc-muted: var(--e-global-color-11cde0c, #8A6E58);
  --ttc-green: var(--e-global-color-e4f978e, #4A7C59);
  --ttc-border: rgba(200, 118, 42, 0.15);
  --ttc-shadow: 0 4px 24px rgba(92, 61, 30, 0.07), 0 1px 3px rgba(92, 61, 30, 0.04);
  --ttc-radius: 4px;
  --ttc-radius-sm: 2px;
  --ttc-font-heading: var(--e-global-typography-primary-font-family, "Cormorant Garamond", serif);
  --ttc-font-body: var(--e-global-typography-text-font-family, "Lora", serif);
  --ttc-font-accent: var(--e-global-typography-accent-font-family, "Jost", sans-serif);
  --ttc-font-button: "DM Sans", sans-serif;
  color: var(--ttc-text) !important;
  font-family: var(--ttc-font-body) !important;
}

.elementor-widget-woocommerce-purchase-summary .woocommerce-thankyou-order-received,
.elementor-widget-woocommerce-purchase-summary .woocommerce-order-overview,
.elementor-widget-woocommerce-purchase-summary .woocommerce-order-details,
.elementor-widget-woocommerce-purchase-summary .woocommerce-customer-details,
.elementor-widget-woocommerce-purchase-summary .woocommerce-order-downloads,
.elementor-widget-woocommerce-purchase-summary .woocommerce-bacs-bank-details {
  border: 1px solid var(--ttc-border) !important;
  border-radius: var(--ttc-radius) !important;
  background: var(--ttc-surface-strong) !important;
  box-shadow: var(--ttc-shadow) !important;
}

.elementor-widget-woocommerce-purchase-summary .woocommerce-thankyou-order-received {
  margin: 0 0 24px !important;
  padding: 18px 22px !important;
  color: var(--ttc-green) !important;
  font-family: var(--ttc-font-accent) !important;
  font-size: 0.95rem !important;
  font-weight: 500 !important;
  letter-spacing: 0.08em !important;
  line-height: 1.45 !important;
  text-transform: uppercase !important;
  overflow-wrap: anywhere !important;
}

.elementor-widget-woocommerce-purchase-summary .woocommerce-order-overview {
  display: grid !important;
  grid-template-columns: repeat(4, minmax(150px, 1fr)) !important;
  gap: 0 !important;
  margin: 0 0 24px !important;
  padding: 0 !important;
  list-style: none !important;
  min-width: 0 !important;
}

.elementor-widget-woocommerce-purchase-summary .woocommerce-order-overview li {
  display: block !important;
  float: none !important;
  width: auto !important;
  min-width: 0 !important;
  margin: 0 !important;
  padding: 22px 20px !important;
  border-right: 1px solid var(--ttc-border) !important;
  color: var(--ttc-muted) !important;
  font-family: var(--ttc-font-accent) !important;
  font-size: 11px !important;
  font-weight: 500 !important;
  letter-spacing: 0.14em !important;
  line-height: 1.35 !important;
  text-transform: uppercase !important;
  text-align: left !important;
  overflow-wrap: normal !important;
  word-break: normal !important;
  writing-mode: horizontal-tb !important;
}

.elementor-widget-woocommerce-purchase-summary .woocommerce-order-overview li:last-child {
  border-right: 0 !important;
}

.elementor-widget-woocommerce-purchase-summary .woocommerce-order-overview li.woocommerce-order-overview__order,
.elementor-widget-woocommerce-purchase-summary .woocommerce-order-overview li.order {
  grid-column: 1 !important;
}

.elementor-widget-woocommerce-purchase-summary .woocommerce-order-overview li.woocommerce-order-overview__date,
.elementor-widget-woocommerce-purchase-summary .woocommerce-order-overview li.date {
  grid-column: 2 !important;
}

.elementor-widget-woocommerce-purchase-summary .woocommerce-order-overview li.woocommerce-order-overview__email,
.elementor-widget-woocommerce-purchase-summary .woocommerce-order-overview li.email {
  grid-column: 3 !important;
}

.elementor-widget-woocommerce-purchase-summary .woocommerce-order-overview li.woocommerce-order-overview__total,
.elementor-widget-woocommerce-purchase-summary .woocommerce-order-overview li.total {
  grid-column: 4 !important;
}

.elementor-widget-woocommerce-purchase-summary .woocommerce-order-overview li strong,
.elementor-widget-woocommerce-purchase-summary .woocommerce-order-overview li .amount,
.elementor-widget-woocommerce-purchase-summary .woocommerce-order-overview li .woocommerce-Price-amount {
  display: block !important;
  margin-top: 8px !important;
  color: var(--ttc-secondary) !important;
  font-family: var(--ttc-font-body) !important;
  font-size: 1.05rem !important;
  font-weight: 500 !important;
  line-height: 1.2 !important;
  letter-spacing: normal !important;
  text-transform: none !important;
  text-align: left !important;
  overflow-wrap: anywhere !important;
  word-break: normal !important;
  writing-mode: horizontal-tb !important;
}

.elementor-widget-woocommerce-purchase-summary .woocommerce-order-overview li.woocommerce-order-overview__payment-method,
.elementor-widget-woocommerce-purchase-summary .woocommerce-order-overview li.method,
.elementor-widget-woocommerce-purchase-summary .woocommerce-order-overview li:last-child {
  grid-row: 2 !important;
  grid-column: 1 / -1 !important;
  border-right: 0 !important;
  border-top: 1px solid var(--ttc-border) !important;
  padding-top: 18px !important;
}

.elementor-widget-woocommerce-purchase-summary .woocommerce-order-details,
.elementor-widget-woocommerce-purchase-summary .woocommerce-customer-details,
.elementor-widget-woocommerce-purchase-summary .woocommerce-order-downloads,
.elementor-widget-woocommerce-purchase-summary .woocommerce-bacs-bank-details {
  padding: 28px 32px !important;
  margin: 0 0 24px !important;
}

.elementor-widget-woocommerce-purchase-summary .woocommerce-order-details__title,
.elementor-widget-woocommerce-purchase-summary .woocommerce-column__title,
.elementor-widget-woocommerce-purchase-summary .woocommerce-order-downloads__title,
.elementor-widget-woocommerce-purchase-summary .wc-bacs-bank-details-heading,
.elementor-widget-woocommerce-purchase-summary .wc-bacs-bank-details-account-name {
  margin: 0 0 20px !important;
  color: var(--ttc-secondary) !important;
  font-family: var(--ttc-font-heading) !important;
  font-size: 26px !important;
  line-height: 1.2 !important;
  font-weight: 700 !important;
}

.elementor-widget-woocommerce-purchase-summary table.shop_table,
.elementor-widget-woocommerce-purchase-summary table.woocommerce-table {
  border: 0 !important;
  background: transparent !important;
  margin: 0 !important;
}

.elementor-widget-woocommerce-purchase-summary table.shop_table th,
.elementor-widget-woocommerce-purchase-summary table.shop_table td,
.elementor-widget-woocommerce-purchase-summary table.woocommerce-table th,
.elementor-widget-woocommerce-purchase-summary table.woocommerce-table td {
  padding: 14px 0 !important;
  border-left: 0 !important;
  border-right: 0 !important;
  border-top: 1px solid rgba(200, 118, 42, 0.1) !important;
  color: var(--ttc-text) !important;
  background: transparent !important;
}

.elementor-widget-woocommerce-purchase-summary table.shop_table thead th,
.elementor-widget-woocommerce-purchase-summary table.shop_table tfoot th,
.elementor-widget-woocommerce-purchase-summary table.shop_table tfoot td,
.elementor-widget-woocommerce-purchase-summary table.woocommerce-table thead th,
.elementor-widget-woocommerce-purchase-summary table.woocommerce-table tfoot th,
.elementor-widget-woocommerce-purchase-summary table.woocommerce-table tfoot td {
  color: var(--ttc-muted) !important;
  font-family: var(--ttc-font-accent) !important;
  font-size: 11px !important;
  font-weight: 500 !important;
  letter-spacing: 0.14em !important;
  text-transform: uppercase !important;
}

.elementor-widget-woocommerce-purchase-summary table.shop_table tbody tr:first-child td,
.elementor-widget-woocommerce-purchase-summary table.woocommerce-table tbody tr:first-child td {
  border-top: 0 !important;
}

.elementor-widget-woocommerce-purchase-summary table.shop_table .product-name,
.elementor-widget-woocommerce-purchase-summary table.woocommerce-table .product-name {
  font-family: var(--ttc-font-heading) !important;
  font-size: 1.15rem !important;
  font-weight: 600 !important;
  color: var(--ttc-secondary) !important;
}

.elementor-widget-woocommerce-purchase-summary a {
  color: var(--ttc-primary) !important;
  text-decoration: none !important;
}

.elementor-widget-woocommerce-purchase-summary a:hover {
  color: #8C3D10 !important;
}

.elementor-widget-woocommerce-purchase-summary table.shop_table .product-total,
.elementor-widget-woocommerce-purchase-summary table.shop_table .amount,
.elementor-widget-woocommerce-purchase-summary table.woocommerce-table .product-total,
.elementor-widget-woocommerce-purchase-summary table.woocommerce-table .amount {
  font-family: var(--ttc-font-body) !important;
  color: var(--ttc-secondary) !important;
}

.elementor-widget-woocommerce-purchase-summary .woocommerce-Price-amount,
.elementor-widget-woocommerce-purchase-summary .woocommerce-Price-amount *,
.elementor-widget-woocommerce-purchase-summary .woocommerce-order-overview li strong,
.elementor-widget-woocommerce-purchase-summary .woocommerce-order-overview li:last-child,
.elementor-widget-woocommerce-purchase-summary .order-again .button,
.elementor-widget-woocommerce-purchase-summary .product-quantity {
  font-family: var(--ttc-font-body) !important;
}

.elementor-widget-woocommerce-purchase-summary address {
  margin: 0 !important;
  padding: 0 !important;
  color: var(--ttc-text) !important;
  font-style: normal !important;
  line-height: 1.8 !important;
}

.elementor-widget-woocommerce-purchase-summary .woocommerce-customer-details address {
  padding: 18px 20px !important;
  border: 1px solid rgba(200, 118, 42, 0.12) !important;
  border-radius: var(--ttc-radius-sm) !important;
  background: rgba(255, 253, 248, 0.7) !important;
}

.elementor-widget-woocommerce-purchase-summary .woocommerce-button,
.elementor-widget-woocommerce-purchase-summary a.button,
.elementor-widget-woocommerce-purchase-summary .button {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  min-height: 48px !important;
  padding: 0 22px !important;
  border: 1.5px solid var(--ttc-primary) !important;
  border-radius: 2px !important;
  background: var(--ttc-primary) !important;
  color: #fff !important;
  font-family: var(--ttc-font-button) !important;
  font-size: 0.9375rem !important;
  font-weight: 500 !important;
  letter-spacing: 0.08em !important;
  text-transform: uppercase !important;
  text-decoration: none !important;
}

.elementor-widget-woocommerce-purchase-summary .woocommerce-button:hover,
.elementor-widget-woocommerce-purchase-summary a.button:hover,
.elementor-widget-woocommerce-purchase-summary .button:hover {
  background: #8C3D10 !important;
  border-color: #8C3D10 !important;
  color: #fff !important;
}

/* ── Checkout Responsive ── */
@media (max-width: 1024px) {
  .elementor-widget-woocommerce-checkout-page .e-checkout__container {
    grid-template-columns: 1fr !important;
    gap: 24px !important;
  }

  .elementor-widget-woocommerce-checkout-page .e-checkout__column-inner.e-sticky-right-column {
    position: static !important;
    top: auto !important;
  }

  .elementor-widget-woocommerce-purchase-summary .woocommerce-order-overview {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }

  .elementor-widget-woocommerce-purchase-summary .woocommerce-order-overview li.woocommerce-order-overview__order,
  .elementor-widget-woocommerce-purchase-summary .woocommerce-order-overview li.order,
  .elementor-widget-woocommerce-purchase-summary .woocommerce-order-overview li.woocommerce-order-overview__date,
  .elementor-widget-woocommerce-purchase-summary .woocommerce-order-overview li.date,
  .elementor-widget-woocommerce-purchase-summary .woocommerce-order-overview li.woocommerce-order-overview__email,
  .elementor-widget-woocommerce-purchase-summary .woocommerce-order-overview li.email,
  .elementor-widget-woocommerce-purchase-summary .woocommerce-order-overview li.woocommerce-order-overview__total,
  .elementor-widget-woocommerce-purchase-summary .woocommerce-order-overview li.total {
    grid-column: auto !important;
  }

  .elementor-widget-woocommerce-purchase-summary .woocommerce-order-overview li:nth-child(2n) {
    border-right: 0 !important;
  }
}

@media (max-width: 767px) {
  .elementor-widget-woocommerce-checkout-page .e-checkout__container {
    gap: 24px !important;
  }

  .elementor-widget-woocommerce-checkout-page .woocommerce-billing-fields,
  .elementor-widget-woocommerce-checkout-page .woocommerce-shipping-fields,
  .elementor-widget-woocommerce-checkout-page .woocommerce-additional-fields {
    padding: 20px !important;
  }

  .elementor-widget-woocommerce-checkout-page .e-checkout__order_review,
  .elementor-widget-woocommerce-checkout-page .e-coupon-box,
  .elementor-widget-woocommerce-checkout-page .e-checkout__order_review-2 {
    padding: 20px !important;
  }

  .elementor-widget-woocommerce-checkout-page .woocommerce-billing-fields > h3,
  .elementor-widget-woocommerce-checkout-page .woocommerce-shipping-fields > h3,
  .elementor-widget-woocommerce-checkout-page .woocommerce-additional-fields > h3,
  .elementor-widget-woocommerce-checkout-page #order_review_heading {
    font-size: 22px !important;
  }

  .elementor-widget-woocommerce-checkout-page .woocommerce-billing-fields__field-wrapper,
  .elementor-widget-woocommerce-checkout-page .woocommerce-shipping-fields__field-wrapper {
    grid-template-columns: 1fr !important;
  }

  .elementor-widget-woocommerce-checkout-page .coupon-container-grid {
    flex-direction: column !important;
    gap: 10px !important;
  }

  .elementor-widget-woocommerce-checkout-page .coupon-col-1 input.input-text {
    border-right: 1.5px solid rgba(200, 118, 42, 0.18) !important;
    border-radius: var(--ttc-radius-sm) !important;
  }

  .elementor-widget-woocommerce-checkout-page .e-coupon-box .button.e-apply-coupon {
    border-radius: var(--ttc-radius-sm) !important;
    width: 100% !important;
    justify-content: center !important;
  }

  .elementor-widget-woocommerce-checkout-page .woocommerce-checkout-review-order-table tbody tr.cart_item {
    grid-template-columns: 1fr !important;
  }

  .elementor-widget-woocommerce-checkout-page .woocommerce-checkout-review-order-table tbody td.product-total,
  .elementor-widget-woocommerce-checkout-page .woocommerce-checkout-review-order-table tfoot td {
    text-align: left !important;
  }

  .elementor-widget-woocommerce-checkout-page .woocommerce-checkout-review-order-table tfoot tr.cart-subtotal,
  .elementor-widget-woocommerce-checkout-page .woocommerce-checkout-review-order-table tfoot tr.order-total {
    flex-direction: column !important;
    gap: 8px !important;
  }

  .elementor-widget-woocommerce-checkout-page .woocommerce-checkout-review-order-table tfoot tr.order-total .amount {
    font-size: 24px !important;
  }

  .elementor-widget-woocommerce-checkout-page .e-checkout__order_review {
    padding: 24px !important;
  }

  .elementor-widget-woocommerce-purchase-summary .woocommerce-thankyou-order-received {
    padding: 14px 16px !important;
    font-size: 0.82rem !important;
    letter-spacing: 0.04em !important;
    line-height: 1.55 !important;
  }

  .elementor-widget-woocommerce-purchase-summary .woocommerce-order-overview {
    grid-template-columns: 1fr !important;
  }

  .elementor-widget-woocommerce-purchase-summary .woocommerce-order-overview li {
    display: block !important;
    width: auto !important;
    min-width: 0 !important;
    grid-column: auto !important;
    grid-row: auto !important;
    border-right: 0 !important;
    border-top: 1px solid var(--ttc-border) !important;
    padding: 16px 18px !important;
    font-size: 10px !important;
    letter-spacing: 0.08em !important;
    line-height: 1.35 !important;
    white-space: normal !important;
    overflow-wrap: normal !important;
    word-break: normal !important;
  }

  .elementor-widget-woocommerce-purchase-summary .woocommerce-order-overview li:first-child {
    border-top: 0 !important;
  }

  .elementor-widget-woocommerce-purchase-summary .woocommerce-order-overview li.woocommerce-order-overview__payment-method,
  .elementor-widget-woocommerce-purchase-summary .woocommerce-order-overview li.method,
  .elementor-widget-woocommerce-purchase-summary .woocommerce-order-overview li:last-child {
    grid-column: auto !important;
    grid-row: auto !important;
    border-top: 1px solid var(--ttc-border) !important;
    padding-top: 16px !important;
  }

  .elementor-widget-woocommerce-purchase-summary .woocommerce-order-overview li strong,
  .elementor-widget-woocommerce-purchase-summary .woocommerce-order-overview li .amount,
  .elementor-widget-woocommerce-purchase-summary .woocommerce-order-overview li .woocommerce-Price-amount {
    margin-top: 6px !important;
    font-size: 1rem !important;
    line-height: 1.45 !important;
    white-space: normal !important;
    overflow-wrap: anywhere !important;
    word-break: normal !important;
  }

  .elementor-widget-woocommerce-purchase-summary .woocommerce-order-overview li.woocommerce-order-overview__payment-method strong,
  .elementor-widget-woocommerce-purchase-summary .woocommerce-order-overview li.method strong,
  .elementor-widget-woocommerce-purchase-summary .woocommerce-order-overview li:last-child strong {
    max-width: 100% !important;
    overflow-wrap: break-word !important;
  }

  .elementor-widget-woocommerce-purchase-summary .woocommerce-order-details,
  .elementor-widget-woocommerce-purchase-summary .woocommerce-customer-details,
  .elementor-widget-woocommerce-purchase-summary .woocommerce-order-downloads,
  .elementor-widget-woocommerce-purchase-summary .woocommerce-bacs-bank-details {
    padding: 20px !important;
  }

  .elementor-widget-woocommerce-purchase-summary .woocommerce-order-details__title,
  .elementor-widget-woocommerce-purchase-summary .woocommerce-column__title,
  .elementor-widget-woocommerce-purchase-summary .woocommerce-order-downloads__title,
  .elementor-widget-woocommerce-purchase-summary .wc-bacs-bank-details-heading,
  .elementor-widget-woocommerce-purchase-summary .wc-bacs-bank-details-account-name {
    font-size: 22px !important;
  }

  .elementor-widget-woocommerce-purchase-summary table.shop_table th,
  .elementor-widget-woocommerce-purchase-summary table.shop_table td,
  .elementor-widget-woocommerce-purchase-summary table.woocommerce-table th,
  .elementor-widget-woocommerce-purchase-summary table.woocommerce-table td {
    display: block !important;
    width: 100% !important;
    text-align: left !important;
  }
}


/* Scope grid override to auth/lostpw pages only — not the logged-in dashboard */
.ttc-my-account-auth .elementor-widget-woocommerce-my-account .woocommerce,
.ttc-my-account-auth .elementor-widget-woocommerce-my-account .e-my-account-tab .woocommerce,
.ttc-my-account-lostpw .elementor-widget-woocommerce-my-account .woocommerce,
.ttc-my-account-lostpw .elementor-widget-woocommerce-my-account .e-my-account-tab .woocommerce {
  grid-template-columns: unset !important;
}

.elementor-widget-woocommerce-my-account .e-my-account-tab:not(.e-my-account-tab__dashboard--custom) .woocommerce .woocommerce-ResetPassword {
  width: 100% !important;
}

/* ============================================================
   Auto account creation — the server forces/clears `createaccount`
   (functions.php), so the checkbox is noise. Hide it.
   ============================================================ */
.elementor-widget-woocommerce-checkout-page .woocommerce-account-fields {
  display: none !important;
}

/* ============================================================
   Login modal — styles the in-place Elementor login block as a
   centred popup. The block stays inside form.checkout (moving it
   would orphan the nonce + fields), so this is position-only.
   ============================================================ */
.ttc-login-overlay {
  display: none;
  position: fixed;
  inset: 0;
  z-index: 100000;
  background: rgba(46, 26, 14, 0.55);
}

.ttc-login-overlay.is-open {
  display: block;
}

.elementor-widget-woocommerce-checkout-page .e-woocommerce-login-anchor.ttc-modal-open {
  position: fixed !important;
  top: 50% !important;
  left: 50% !important;
  transform: translate(-50%, -50%) !important;
  z-index: 100001 !important;
  width: min(440px, calc(100vw - 32px)) !important;
  max-height: 88vh !important;
  overflow: auto !important;
  margin: 0 !important;
  padding: 30px 28px 28px !important;
  border: 1px solid var(--ttc-border) !important;
  border-radius: var(--ttc-radius) !important;
  background: var(--ttc-surface-strong) !important;
  box-shadow: 0 24px 70px rgba(61, 35, 20, 0.35) !important;
}

.ttc-login-close {
  position: absolute !important;
  top: 12px !important;
  right: 12px !important;
  width: 34px !important;
  height: 34px !important;
  padding: 0 !important;
  border: 0 !important;
  border-radius: 50% !important;
  background: var(--ttc-surface-soft) !important;
  color: var(--ttc-secondary) !important;
  font-size: 20px !important;
  line-height: 1 !important;
  cursor: pointer !important;
}

.ttc-login-close:hover {
  background: var(--ttc-surface) !important;
  color: var(--ttc-primary) !important;
}

.ttc-login-title {
  margin: 0 0 6px !important;
  color: var(--ttc-secondary) !important;
  font-family: var(--ttc-font-heading) !important;
  font-size: 26px !important;
  font-weight: 700 !important;
  line-height: 1.2 !important;
}

.ttc-modal-open .e-woocommerce-login-nudge {
  margin: 0 0 18px !important;
  color: var(--ttc-muted) !important;
  font-size: 13.5px !important;
  line-height: 1.7 !important;
}

/* Stack the two-column field layout inside the narrow modal. */
.ttc-modal-open .e-login-wrap,
.ttc-modal-open .e-login-wrap-start,
.ttc-modal-open .e-login-wrap-end {
  display: block !important;
  width: 100% !important;
}

.ttc-modal-open .form-row,
.ttc-modal-open .form-row-first,
.ttc-modal-open .form-row-last {
  width: 100% !important;
  margin: 0 0 14px !important;
}

.ttc-modal-open .e-login-label {
  display: none !important;
}

.elementor-widget-woocommerce-checkout-page .e-woocommerce-form-login-submit {
  width: 100% !important;
  min-height: 48px !important;
  border: 0 !important;
  border-radius: var(--ttc-radius-sm) !important;
  background: var(--ttc-primary) !important;
  color: #fff !important;
  font-family: var(--ttc-font-button) !important;
  font-size: 0.9375rem !important;
  font-weight: 500 !important;
  letter-spacing: 0.08em !important;
  text-transform: uppercase !important;
  cursor: pointer !important;
}

.elementor-widget-woocommerce-checkout-page .e-woocommerce-form-login-submit:hover {
  background: #8C3D10 !important;
}

.ttc-modal-open .e-login-actions-wrap {
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  gap: 12px !important;
  margin-top: 14px !important;
}

/* The text sits in a span Elementor styles with heading sizing — hit it directly. */
.ttc-modal-open .woocommerce-form-login__rememberme,
.ttc-modal-open .elementor-woocomemrce-login-rememberme {
  font-family: var(--ttc-font-body) !important;
  font-size: 14px !important;
  font-weight: 400 !important;
  line-height: 1.4 !important;
}

.ttc-modal-open .lost_password {
  margin: 0 !important;
  font-size: 13px !important;
  white-space: nowrap !important;
}

/* ============================================================
   Consent checkboxes (terms + any plugin opt-in)
   ------------------------------------------------------------
   Scoped to the terms wrapper / payment area, so the
   "ship to different address" toggle keeps its own styling.
   Absolute-positioned box instead of flex: lets the label text
   and the required "*" flow inline, so the marker sits after
   the last word instead of being pushed to the right edge.
   ============================================================ */
.elementor-widget-woocommerce-checkout-page .woocommerce-terms-and-conditions-wrapper .form-row,
.elementor-widget-woocommerce-checkout-page #payment .form-row {
  margin: 0 0 14px !important;
  padding: 0 !important;
}

.elementor-widget-woocommerce-checkout-page .woocommerce-terms-and-conditions-wrapper .form-row:last-child,
.elementor-widget-woocommerce-checkout-page #payment .form-row:last-child {
  margin-bottom: 0 !important;
}

/* Any checkbox label in these containers — plugin markup may omit .checkbox. */
.elementor-widget-woocommerce-checkout-page .woocommerce-terms-and-conditions-wrapper label,
.elementor-widget-woocommerce-checkout-page #payment label.checkbox,
.elementor-widget-woocommerce-checkout-page #payment .woocommerce-form__label-for-checkbox {
  position: relative !important;
  display: block !important;
  gap: 0 !important;
  margin: 0 !important;
  padding-left: 24px !important;
  color: var(--ttc-text) !important;
  font-family: var(--ttc-font-body) !important;
  font-size: 13px !important;
  font-weight: 400 !important;
  line-height: 1.55 !important;
  letter-spacing: normal !important;
  text-transform: none !important;
  cursor: pointer !important;
}

/* Fixed px, not em: form controls don't inherit font-size, so `em` here would
   resolve against the input's own 1rem (reset.css) instead of the label. */
.elementor-widget-woocommerce-checkout-page .woocommerce-terms-and-conditions-wrapper input[type="checkbox"],
.elementor-widget-woocommerce-checkout-page #payment input[type="checkbox"] {
  position: absolute !important;
  left: 0 !important;
  /* (line box 13px x 1.55 = 20px, minus 14px box) / 2 = 3px */
  top: 3px !important;
  flex: none !important;
  width: 14px !important;
  height: 14px !important;
  min-width: 14px !important;
  max-width: 14px !important;
  min-height: 14px !important;
  margin: 0 !important;
  padding: 0 !important;
  font-size: inherit !important;
  vertical-align: top !important;
  accent-color: var(--ttc-primary) !important;
  cursor: pointer !important;
}

/* Keep the text as an inline run so "*" follows the final word. */
.elementor-widget-woocommerce-checkout-page .woocommerce-terms-and-conditions-checkbox-text {
  display: inline !important;
}

.elementor-widget-woocommerce-checkout-page .woocommerce-terms-and-conditions-wrapper .required,
.elementor-widget-woocommerce-checkout-page #payment .required {
  margin-left: 3px !important;
  color: var(--ttc-red) !important;
  text-decoration: none !important;
  border: 0 !important;
}

.elementor-widget-woocommerce-checkout-page .woocommerce-terms-and-conditions-wrapper a,
.elementor-widget-woocommerce-checkout-page #payment label.checkbox a {
  color: var(--ttc-primary) !important;
  text-decoration: underline !important;
  text-underline-offset: 2px !important;
}

/* Validation state — colour alone isn't enough, so the box is marked too. */
.elementor-widget-woocommerce-checkout-page .validate-required.woocommerce-invalid label.checkbox input[type="checkbox"] {
  outline: 2px solid var(--ttc-red) !important;
  outline-offset: 2px !important;
}

@media (max-width: 767px) {
  .elementor-widget-woocommerce-checkout-page .woocommerce-terms-and-conditions-wrapper .form-row,
  .elementor-widget-woocommerce-checkout-page #payment .form-row {
    margin: 0 0 16px !important;
  }

  .elementor-widget-woocommerce-checkout-page .woocommerce-privacy-policy-text {
    font-size: 12.5px !important;
    line-height: 1.7 !important;
  }
}

/* ============================================================
   Mobile horizontal-scroll containment
   ------------------------------------------------------------
   ponytail: containment, not a root-cause fix. The offending
   element lives in Elementor/CartFlows markup stored in the DB,
   which can't be read from disk. Safe here because the sticky
   right column is already `position: static` below 1024px, so
   nothing sticky exists at this breakpoint to break.
   To replace with a targeted fix: run _ttc-temp/find-overflow.js
   in DevTools on this page at ~390px wide.
   ============================================================ */
@media (max-width: 767px) {
  html,
  body {
    overflow-x: hidden !important;
  }

  .elementor-widget-woocommerce-checkout-page {
    max-width: 100% !important;
    overflow-x: clip !important;
  }
}
