/* ==========================================================================
   LeadMinds — WooCommerce (cart / checkout / account) & Tutor LMS screens
   Uses the course-booking design tokens (course-booking.css).
   ========================================================================== */

.lm-commerce-card {
  background: var(--cb-white, #fff);
  border: 1px solid var(--cb-border, #e2e8f0);
  border-radius: 20px;
  box-shadow: var(--cb-shadow, 0 4px 24px rgba(15, 23, 42, .08));
  padding: clamp(20px, 3vw, 36px);
  color: var(--cb-text, #1e293b);
  font-size: 15px;
  line-height: 1.7;
}
.lm-commerce-page .cb-hero { padding: 36px 40px; }
.lm-commerce-page .cb-hero-title { margin: 0; }

/* ---------- generic form controls ---------- */
.lm-commerce-card .input-text,
.lm-commerce-card input[type="text"],
.lm-commerce-card input[type="email"],
.lm-commerce-card input[type="tel"],
.lm-commerce-card input[type="password"],
.lm-commerce-card input[type="number"],
.lm-commerce-card select,
.lm-commerce-card textarea,
.lm-commerce-card .select2-container .select2-selection--single {
  width: 100%;
  min-height: 48px;
  border: 1.5px solid var(--cb-border, #e2e8f0);
  border-radius: 12px;
  padding: 10px 14px;
  font: inherit;
  font-size: 15px;
  color: var(--cb-text, #1e293b);
  background: #fff;
  box-sizing: border-box;
  transition: border-color .2s, box-shadow .2s;
}
.lm-commerce-card .select2-container .select2-selection--single .select2-selection__rendered { line-height: 26px; padding: 0; }
.lm-commerce-card .select2-container .select2-selection--single .select2-selection__arrow { height: 46px; }
.lm-commerce-card .input-text:focus,
.lm-commerce-card input:focus,
.lm-commerce-card select:focus,
.lm-commerce-card textarea:focus {
  outline: none;
  border-color: var(--cb-primary, #0d9488);
  box-shadow: 0 0 0 4px rgba(13, 148, 136, .12);
}
.lm-commerce-card label { font-weight: 700; font-size: 14px; color: var(--cb-text, #1e293b); display: block; margin-bottom: 6px; }
.lm-commerce-card .form-row { margin: 0 0 16px; padding: 0; }
.lm-commerce-card .required { color: var(--cb-red, #dc2626); text-decoration: none; }

/* ---------- buttons ---------- */
.lm-commerce-card .button,
.lm-commerce-card button.button,
.lm-commerce-card input.button,
.lm-commerce-card #place_order,
.lm-commerce-card .checkout-button,
.lm-commerce-card .woocommerce-Button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 52px;
  padding: 0 28px;
  border: 0;
  border-radius: 999px;
  background: linear-gradient(135deg, var(--cb-primary, #0d9488) 0%, var(--cb-primary-dark, #0a7c71) 100%);
  color: #fff !important;
  font: inherit;
  font-size: 16px;
  font-weight: 800;
  text-decoration: none;
  cursor: pointer;
  box-shadow: 0 8px 20px rgba(13, 148, 136, .25);
  transition: transform .2s, box-shadow .2s;
}
.lm-commerce-card .button:hover,
.lm-commerce-card #place_order:hover { transform: translateY(-1px); box-shadow: 0 12px 26px rgba(13, 148, 136, .32); }
.lm-commerce-card #place_order { width: 100%; }

/* ---------- checkout layout ---------- */
.lm-commerce-card form.checkout {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 420px;
  gap: 32px;
  align-items: start;
}
.lm-commerce-card form.checkout > .woocommerce-NoticeGroup { grid-column: 1 / -1; }
.lm-commerce-card form.checkout #customer_details { grid-column: 1; }
.lm-commerce-card form.checkout #order_review_heading { display: none; }
.lm-commerce-card form.checkout #order_review {
  grid-column: 2;
  grid-row: 1 / span 3;
  position: sticky;
  top: var(--lm-stick-side, 160px);
  background: var(--cb-bg, #f8fafc);
  border: 1px solid var(--cb-border, #e2e8f0);
  border-radius: 18px;
  padding: 24px;
}
.lm-commerce-card #customer_details .col-1,
.lm-commerce-card #customer_details .col-2 { width: 100%; float: none; max-width: none; }
.lm-commerce-card .woocommerce-billing-fields h3,
.lm-commerce-card .woocommerce-additional-fields h3,
.lm-commerce-card h2,
.lm-commerce-card h3 { font-size: 18px; font-weight: 800; color: var(--cb-navy, #0f172a); margin: 0 0 16px; }
.lm-commerce-card .woocommerce-billing-fields__field-wrapper { display: grid; grid-template-columns: 1fr 1fr; gap: 0 16px; }
.lm-commerce-card .woocommerce-billing-fields__field-wrapper .form-row-wide { grid-column: 1 / -1; }
.lm-commerce-card .form-row-first,
.lm-commerce-card .form-row-last { width: auto; float: none; }

/* order table */
.lm-commerce-card table.shop_table {
  width: 100%;
  border-collapse: collapse;
  border: 0;
  margin: 0 0 18px;
  font-size: 15px;
}
.lm-commerce-card table.shop_table th,
.lm-commerce-card table.shop_table td {
  padding: 12px 4px;
  border: 0;
  border-bottom: 1px solid var(--cb-border, #e2e8f0);
  text-align: start;
  vertical-align: middle;
}
.lm-commerce-card table.shop_table tfoot .order-total th,
.lm-commerce-card table.shop_table tfoot .order-total td { font-size: 18px; font-weight: 800; color: var(--cb-primary-dark, #0a7c71); border-bottom: 0; }

/* payment methods */
.lm-commerce-card #payment { background: transparent; border-radius: 0; }
.lm-commerce-card #payment ul.payment_methods {
  list-style: none;
  margin: 0 0 18px;
  padding: 0;
  border: 0;
  display: grid;
  gap: 10px;
}
.lm-commerce-card #payment ul.payment_methods li {
  background: #fff;
  border: 1.5px solid var(--cb-border, #e2e8f0);
  border-radius: 14px;
  padding: 14px 16px;
  margin: 0;
  line-height: 1.5;
}
.lm-commerce-card #payment ul.payment_methods li:has(input:checked) {
  border-color: var(--cb-primary, #0d9488);
  box-shadow: 0 0 0 4px rgba(13, 148, 136, .1);
}
.lm-commerce-card #payment ul.payment_methods li > label { display: inline-flex; align-items: center; gap: 10px; margin: 0; font-size: 15px; cursor: pointer; }
.lm-commerce-card #payment ul.payment_methods li img { max-height: 26px; width: auto; margin: 0 6px; vertical-align: middle; }
.lm-commerce-card #payment div.payment_box {
  background: var(--cb-primary-light, #e6f7f5);
  color: var(--cb-text, #1e293b);
  border-radius: 12px;
  padding: 12px 14px;
  margin: 12px 0 0;
  font-size: 14px;
}
.lm-commerce-card #payment div.payment_box::before { display: none; }
.lm-commerce-card .woocommerce-privacy-policy-text { font-size: 13px; color: var(--cb-muted, #64748b); }
.lm-commerce-card .place-order { padding: 0 !important; margin: 0; }

/* notices */
.lm-commerce-card .woocommerce-error,
.lm-commerce-card .woocommerce-info,
.lm-commerce-card .woocommerce-message,
.woocommerce-notices-wrapper .woocommerce-message,
.woocommerce-notices-wrapper .woocommerce-error {
  list-style: none;
  margin: 0 0 20px;
  padding: 14px 18px;
  border-radius: 12px;
  border: 1px solid var(--cb-border, #e2e8f0);
  background: var(--cb-bg, #f8fafc);
  font-size: 14px;
}
.lm-commerce-card .woocommerce-error { background: #fef2f2; border-color: #fecaca; color: #991b1b; }
.lm-commerce-card .woocommerce-message { background: var(--cb-primary-light, #e6f7f5); border-color: #99e0d8; }
.lm-commerce-card .woocommerce-error::before,
.lm-commerce-card .woocommerce-info::before,
.lm-commerce-card .woocommerce-message::before { display: none; }

/* thank-you page */
.lm-commerce-card .woocommerce-order-overview {
  list-style: none;
  padding: 0;
  margin: 0 0 24px;
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
  gap: 12px;
}
.lm-commerce-card .woocommerce-order-overview li {
  background: var(--cb-bg, #f8fafc);
  border: 1px solid var(--cb-border, #e2e8f0);
  border-radius: 12px;
  padding: 12px 14px;
  font-size: 13px;
  color: var(--cb-muted, #64748b);
  float: none;
  margin: 0;
}
.lm-commerce-card .woocommerce-order-overview li strong { display: block; font-size: 15px; color: var(--cb-text, #1e293b); }
.lm-commerce-card .woocommerce-thankyou-order-received { font-size: 18px; font-weight: 800; color: var(--cb-green, #16a34a); }

/* my account */
.lm-commerce-card .woocommerce-MyAccount-navigation ul { list-style: none; padding: 0; margin: 0 0 24px; display: flex; flex-wrap: wrap; gap: 8px; }
.lm-commerce-card .woocommerce-MyAccount-navigation a {
  display: inline-block;
  padding: 8px 16px;
  border-radius: 999px;
  border: 1px solid var(--cb-border, #e2e8f0);
  text-decoration: none;
  color: var(--cb-text, #1e293b);
  font-weight: 700;
  font-size: 14px;
}
.lm-commerce-card .woocommerce-MyAccount-navigation .is-active a { background: var(--cb-primary, #0d9488); border-color: var(--cb-primary, #0d9488); color: #fff; }
.lm-commerce-card .woocommerce-MyAccount-navigation,
.lm-commerce-card .woocommerce-MyAccount-content { float: none; width: 100%; }

/* cart */
.lm-commerce-card .woocommerce-cart-form .product-thumbnail img { width: 72px; border-radius: 10px; }
.lm-commerce-card .cart-collaterals .cart_totals { width: 100%; max-width: 420px; margin-inline-start: auto; float: none; }
.lm-commerce-card .wc-proceed-to-checkout .checkout-button { width: 100%; }

/* Tamara widget on the course card */
.lm-tamara-widget { margin-top: 12px; }
.lm-tamara-widget:empty { display: none; }

/* ---------- responsive ---------- */
@media (max-width: 960px) {
  .lm-commerce-card form.checkout { grid-template-columns: 1fr; }
  .lm-commerce-card form.checkout #order_review { grid-column: 1; grid-row: auto; position: static; }
}
@media (max-width: 600px) {
  .lm-commerce-page .cb-hero { padding: 26px 22px; }
  .lm-commerce-card { padding: 18px; border-radius: 16px; }
  .lm-commerce-card .woocommerce-billing-fields__field-wrapper { grid-template-columns: 1fr; }
  .lm-commerce-card table.shop_table { font-size: 14px; }
}

/* ---------- dark mode ---------- */
[data-theme="dark"] .lm-commerce-page main { background: #0b1220 !important; }
[data-theme="dark"] .lm-commerce-card { background: #111a2e; border-color: #1f2a44; color: #e2e8f0; }
[data-theme="dark"] .lm-commerce-card label,
[data-theme="dark"] .lm-commerce-card h2,
[data-theme="dark"] .lm-commerce-card h3 { color: #f1f5f9; }
[data-theme="dark"] .lm-commerce-card input,
[data-theme="dark"] .lm-commerce-card select,
[data-theme="dark"] .lm-commerce-card textarea,
[data-theme="dark"] .lm-commerce-card #payment ul.payment_methods li,
[data-theme="dark"] .lm-commerce-card form.checkout #order_review { background: #0b1220; border-color: #1f2a44; color: #e2e8f0; }

/* Tamara logo in the course booking payment strips */
.cb-payment-logo--tamara { width: 86px; height: 30px; object-fit: contain; }
@media (max-width: 600px) { .cb-payment-logo--tamara { width: 72px; height: 26px; } }

.lm-commerce-card .woocommerce-input-wrapper { display: block; width: 100%; }
.lm-commerce-card .blockUI.blockOverlay { border-radius: 18px; }
