/* ==========================================================================
   TM Support WooCommerce Styles
   Custom styling to integrate WooCommerce with the TM Support theme
   ========================================================================== */

/* Shop Page */
.woocommerce .page-header {
  margin-bottom: 0;
}

.woocommerce ul.products {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1.75rem;
  margin: 0;
  padding: 0;
  list-style: none;
}

.woocommerce ul.products li.product {
  background-color: var(--color-card-bg);
  border: 2px solid var(--color-border);
  border-radius: var(--radius-lg);
  padding: 1.25rem;
  text-align: center;
  transition: var(--transition);
  margin: 0;
  width: auto;
  display: flex;
  flex-direction: column;
}

.woocommerce ul.products li.product:hover {
  border-color: var(--color-primary);
  box-shadow: var(--shadow-md);
  transform: translateY(-4px);
}

.woocommerce ul.products li.product .woocommerce-loop-product__title {
  font-size: 1.1rem;
  font-weight: 700;
  color: var(--color-text);
  padding: 0.75rem 0 0.5rem;
  line-height: 1.3;
}

.woocommerce ul.products li.product .woocommerce-loop-product__title:hover {
  color: var(--color-primary);
}

.woocommerce ul.products li.product img {
  border-radius: var(--radius-md);
  margin-bottom: 0;
}

.woocommerce ul.products li.product .price {
  color: var(--color-primary);
  font-weight: 700;
  font-size: 1.15rem;
  margin-bottom: 0.75rem;
}

.woocommerce ul.products li.product .price del {
  color: var(--color-subtext);
  font-weight: 400;
  font-size: 0.95rem;
}

.woocommerce ul.products li.product .price ins {
  text-decoration: none;
}

.woocommerce ul.products li.product .button {
  display: inline-block;
  background-color: var(--color-primary);
  color: #ffffff !important;
  padding: 0.6rem 1.25rem;
  font-size: 0.95rem;
  font-weight: 600;
  border-radius: var(--radius-md);
  border: none;
  cursor: pointer;
  transition: var(--transition);
  text-decoration: none !important;
  margin-top: auto;
  width: 100%;
}

.woocommerce ul.products li.product .button:hover {
  background-color: var(--color-primary-hover);
  box-shadow: var(--shadow-md);
}

.woocommerce ul.products li.product .button.added {
  display: none;
}

.woocommerce ul.products li.product .added_to_cart {
  display: inline-block;
  background-color: var(--color-success);
  color: #ffffff !important;
  padding: 0.6rem 1.25rem;
  font-size: 0.95rem;
  font-weight: 600;
  border-radius: var(--radius-md);
  margin-top: 0.5rem;
  width: 100%;
}

/* Sale badge */
.tmsupport-sale-badge,
.woocommerce span.onsale {
  background-color: var(--color-purple);
  color: #ffffff;
  font-size: 0.75rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.5px;
  padding: 0.25rem 0.6rem;
  border-radius: var(--radius-full);
  position: absolute;
  top: 0.75rem;
  left: 0.75rem;
  z-index: 5;
  min-height: auto;
  min-width: auto;
  line-height: 1.4;
}

/* Product image container */
.woocommerce ul.products li.product .woocommerce-loop-product__link {
  position: relative;
  display: block;
}

/* Star ratings */
.woocommerce .star-rating {
  color: #f5a623;
  font-size: 0.9rem;
  margin: 0 auto 0.5rem;
}

.woocommerce p.stars a {
  color: #f5a623;
}

/* Single Product Page */
.woocommerce div.product .product_title {
  font-size: 2rem;
  font-weight: 700;
  margin-bottom: 1rem;
}

.woocommerce div.product p.price,
.woocommerce div.product span.price {
  color: var(--color-primary);
  font-size: 1.5rem;
  font-weight: 700;
}

.woocommerce div.product .woocommerce-product-details__short-description {
  font-size: 1.05rem;
  line-height: 1.7;
  color: var(--color-text);
  margin-bottom: 1.5rem;
}

.woocommerce div.product form.cart .button {
  background-color: var(--color-primary);
  color: #ffffff !important;
  padding: 0.75rem 2rem;
  font-size: 1.05rem;
  font-weight: 600;
  border-radius: var(--radius-md);
  border: none;
  cursor: pointer;
  transition: var(--transition);
  text-decoration: none !important;
}

.woocommerce div.product form.cart .button:hover {
  background-color: var(--color-primary-hover);
  box-shadow: var(--shadow-md);
}

.woocommerce div.product form.cart .quantity .qty {
  border: 2px solid var(--color-border);
  border-radius: var(--radius-md);
  padding: 0.5rem 0.75rem;
  font-size: 1rem;
  width: 70px;
}

.woocommerce div.product .product_meta {
  border-top: 1px solid var(--color-border);
  padding-top: 1rem;
  margin-top: 1.5rem;
  font-size: 0.9rem;
  color: var(--color-subtext);
}

.woocommerce div.product .product_meta a {
  color: var(--color-primary);
}

/* Product tabs */
.woocommerce div.product .woocommerce-tabs ul.tabs {
  list-style: none;
  padding: 0;
  margin: 0 0 1.5rem;
  border-bottom: 2px solid var(--color-border);
  display: flex;
  gap: 0;
}

.woocommerce div.product .woocommerce-tabs ul.tabs li {
  background-color: transparent;
  border: none;
  padding: 0.75rem 1.25rem;
  margin: 0;
  border-radius: var(--radius-md) var(--radius-md) 0 0;
}

.woocommerce div.product .woocommerce-tabs ul.tabs li.active {
  background-color: var(--color-accent-light);
  border-bottom: 2px solid var(--color-primary);
}

.woocommerce div.product .woocommerce-tabs ul.tabs li a {
  color: var(--color-text);
  font-weight: 600;
  font-size: 0.95rem;
}

.woocommerce div.product .woocommerce-tabs .panel {
  border: 1px solid var(--color-border);
  border-radius: var(--radius-md);
  padding: 1.5rem;
  margin-bottom: 1.5rem;
  line-height: 1.7;
}

/* Related products */
.woocommerce .related.products h2 {
  font-size: 1.5rem;
  margin-bottom: 1.5rem;
}

/* Cart Page */
.woocommerce table.cart,
.woocommerce table.shop_table {
  border: 1px solid var(--color-border);
  border-radius: var(--radius-md);
  border-collapse: separate;
  border-spacing: 0;
}

.woocommerce table.cart th,
.woocommerce table.shop_table th {
  background-color: var(--color-light-bg);
  padding: 1rem;
  font-weight: 700;
  color: var(--color-text);
  text-align: left;
}

.woocommerce table.cart td,
.woocommerce table.shop_table td {
  padding: 1rem;
  border-top: 1px solid var(--color-border);
}

.woocommerce table.cart img,
.woocommerce table.shop_table img {
  max-width: 80px;
  border-radius: var(--radius-sm);
}

.woocommerce .cart_totals h2,
.woocommerce .cart-collaterals .cross-sells > h2 {
  font-size: 1.25rem;
  margin-bottom: 1rem;
}

.woocommerce a.button,
.woocommerce button.button,
.woocommerce input.button,
.woocommerce #respond input#submit {
  background-color: var(--color-primary);
  color: #ffffff !important;
  padding: 0.6rem 1.25rem;
  font-size: 0.95rem;
  font-weight: 600;
  border-radius: var(--radius-md);
  border: none;
  cursor: pointer;
  transition: var(--transition);
  text-decoration: none !important;
}

.woocommerce a.button:hover,
.woocommerce button.button:hover,
.woocommerce input.button:hover,
.woocommerce #respond input#submit:hover {
  background-color: var(--color-primary-hover);
  box-shadow: var(--shadow-md);
}

.woocommerce a.button.alt,
.woocommerce button.button.alt,
.woocommerce input.button.alt {
  background-color: var(--color-purple);
  color: #ffffff !important;
}

.woocommerce a.button.alt:hover,
.woocommerce button.button.alt:hover,
.woocommerce input.button.alt:hover {
  background-color: var(--color-purple-hover);
}

.woocommerce .checkout-button {
  background-color: var(--color-primary) !important;
  color: #ffffff !important;
  padding: 1rem 2rem !important;
  font-size: 1.05rem !important;
  font-weight: 600;
  border-radius: var(--radius-md) !important;
  text-decoration: none !important;
}

.woocommerce .checkout-button:hover {
  background-color: var(--color-primary-hover) !important;
  box-shadow: var(--shadow-md);
}

/* Checkout Page */
.woocommerce form .form-row {
  margin-bottom: 1rem;
}

.woocommerce form .form-row label {
  font-weight: 600;
  color: var(--color-text);
  margin-bottom: 0.35rem;
}

.woocommerce form .form-row input.input-text,
.woocommerce form .form-row textarea,
.woocommerce form .form-row select {
  border: 2px solid var(--color-border);
  border-radius: var(--radius-md);
  padding: 0.6rem 0.75rem;
  font-size: 1rem;
  width: 100%;
  transition: var(--transition);
}

.woocommerce form .form-row input.input-text:focus,
.woocommerce form .form-row textarea:focus,
.woocommerce form .form-row select:focus {
  border-color: var(--color-primary);
  outline: none;
  box-shadow: 0 0 0 3px var(--color-accent-light);
}

.woocommerce h3 {
  font-size: 1.35rem;
  margin-bottom: 1rem;
  padding-bottom: 0.5rem;
  border-bottom: 2px solid var(--color-border);
}

/* Account Page */
.woocommerce-account .woocommerce-MyAccount-navigation ul {
  list-style: none;
  padding: 0;
  margin: 0 0 1.5rem;
}

.woocommerce-account .woocommerce-MyAccount-navigation ul li {
  margin-bottom: 0.5rem;
}

.woocommerce-account .woocommerce-MyAccount-navigation ul li a {
  display: block;
  padding: 0.75rem 1rem;
  border-radius: var(--radius-md);
  color: var(--color-text);
  font-weight: 600;
  background-color: var(--color-light-bg);
  transition: var(--transition);
}

.woocommerce-account .woocommerce-MyAccount-navigation ul li a:hover {
  background-color: var(--color-accent-light);
  color: var(--color-primary);
  text-decoration: none;
}

.woocommerce-account .woocommerce-MyAccount-navigation ul li.is-active a {
  background-color: var(--color-primary);
  color: #ffffff !important;
}

/* Messages and notices */
.woocommerce-message,
.woocommerce-info,
.woocommerce-error {
  border-radius: var(--radius-md);
  padding: 1rem 1.25rem;
  margin-bottom: 1.5rem;
  font-weight: 500;
}

.woocommerce-message {
  background-color: #e8f5e9;
  border-left: 4px solid var(--color-success);
  color: #1b5e20;
}

.woocommerce-info {
  background-color: var(--color-accent-light);
  border-left: 4px solid var(--color-primary);
  color: #0c4a6e;
}

.woocommerce-error {
  background-color: #ffebee;
  border-left: 4px solid #e53935;
  color: #b71c1c;
}

/* Pagination */
.woocommerce nav.woocommerce-pagination ul {
  list-style: none;
  padding: 0;
  display: flex;
  gap: 0.5rem;
  justify-content: center;
  border: none;
}

.woocommerce nav.woocommerce-pagination ul li {
  border: none;
  margin: 0;
}

.woocommerce nav.woocommerce-pagination ul li a,
.woocommerce nav.woocommerce-pagination ul li span {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 40px;
  height: 40px;
  padding: 0.5rem 0.75rem;
  border: 2px solid var(--color-border);
  border-radius: var(--radius-md);
  color: var(--color-text);
  font-weight: 600;
  background-color: var(--color-card-bg);
  transition: var(--transition);
}

.woocommerce nav.woocommerce-pagination ul li a:hover {
  border-color: var(--color-primary);
  color: var(--color-primary);
  text-decoration: none;
}

.woocommerce nav.woocommerce-pagination ul li .current {
  background-color: var(--color-primary);
  color: #ffffff !important;
  border-color: var(--color-primary);
}

/* WooCommerce widgets in footer */
.widget_shopping_cart .widget_shopping_cart_content {
  padding: 0;
}

.widget_product_search form {
  display: flex;
  gap: 0.5rem;
}

.widget_product_search input[type="search"] {
  flex: 1;
  border: 2px solid var(--color-border);
  border-radius: var(--radius-md);
  padding: 0.6rem 0.75rem;
  font-size: 1rem;
}

.widget_product_search button[type="submit"] {
  background-color: var(--color-primary);
  color: #ffffff;
  border: none;
  border-radius: var(--radius-md);
  padding: 0.6rem 1rem;
  font-weight: 600;
  cursor: pointer;
  transition: var(--transition);
}

.widget_product_search button[type="submit"]:hover {
  background-color: var(--color-primary-hover);
}

/* Empty cart */
.cart-empty.woocommerce-info {
  background-color: var(--color-light-bg);
  border-left: 4px solid var(--color-primary);
  text-align: center;
  font-size: 1.1rem;
  padding: 2rem;
}

.return-to-shop .button {
  margin-top: 1.5rem;
}

/* Responsive */
@media screen and (max-width: 1024px) {
  .woocommerce ul.products {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media screen and (max-width: 768px) {
  .woocommerce ul.products {
    grid-template-columns: 1fr;
  }

  .woocommerce div.product .woocommerce-product-gallery {
    margin-bottom: 1.5rem;
  }

  .woocommerce table.cart,
  .woocommerce table.shop_table {
    font-size: 0.875rem;
  }

  .woocommerce table.cart th,
  .woocommerce table.cart td {
    padding: 0.5rem;
  }

  .woocommerce-account .woocommerce-MyAccount-navigation ul {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
  }

  .woocommerce-account .woocommerce-MyAccount-navigation ul li a {
    padding: 0.5rem 0.75rem;
    font-size: 0.875rem;
  }
}

/* ==========================================================================
   TM Support Custom Single Product Page
   ========================================================================== */

.tmsupport-single-product {
  width: 100%;
  padding: 1rem 0 3rem;
}

.tmsupport-product-layout {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 2rem;
  max-width: 800px;
  margin: 0 auto;
}

.tmsupport-product-image-wrap {
  width: 500px;
  max-width: 100%;
  height: 300px;
  overflow: hidden;
  border-radius: var(--radius-lg);
  border: 2px solid var(--color-border);
  background-color: var(--color-light-bg);
  display: flex;
  align-items: center;
  justify-content: center;
}

.tmsupport-product-image {
  width: 500px !important;
  height: 300px !important;
  object-fit: cover;
  display: block;
  pointer-events: none;
}

.tmsupport-product-image-wrap img {
  pointer-events: none;
  cursor: default;
}

/* Remove any WooCommerce gallery link overlay */
.woocommerce-product-gallery__image,
.woocommerce-product-gallery__trigger {
  display: none !important;
  pointer-events: none !important;
}

.tmsupport-product-summary {
  width: 100%;
  max-width: 600px;
  text-align: center;
}

.tmsupport-product-title {
  font-size: 1.85rem;
  font-weight: 700;
  color: var(--color-text);
  margin-bottom: 1rem;
  line-height: 1.3;
}

.tmsupport-product-short-desc {
  font-size: 1.05rem;
  line-height: 1.7;
  color: var(--color-subtext);
  margin-bottom: 1.25rem;
}

.tmsupport-product-price {
  font-size: 1.5rem;
  font-weight: 700;
  color: var(--color-primary);
  margin-bottom: 1.5rem;
}

.tmsupport-order-btn {
  display: inline-block;
  background-color: var(--color-primary);
  color: #ffffff !important;
  padding: 0.85rem 2.5rem;
  font-size: 1.1rem;
  font-weight: 600;
  border-radius: var(--radius-md);
  border: none;
  cursor: pointer;
  transition: var(--transition);
  text-decoration: none !important;
  width: 100%;
  max-width: 300px;
}

.tmsupport-order-btn:hover {
  background-color: var(--color-primary-hover);
  box-shadow: var(--shadow-md);
}

.tmsupport-product-description {
  margin-top: 2rem;
  text-align: left;
  font-size: 1rem;
  line-height: 1.8;
  color: var(--color-text);
  padding-top: 1.5rem;
  border-top: 1px solid var(--color-border);
}

.tmsupport-product-description h2,
.tmsupport-product-description h3 {
  margin-top: 1.5rem;
  margin-bottom: 0.75rem;
}

.tmsupport-product-description ul,
.tmsupport-product-description ol {
  margin-bottom: 1rem;
  padding-left: 1.5rem;
}

/* Hide quantity input everywhere on single product */
.single-product .quantity,
.single-product .woocommerce-quantity-input,
.single-product input[type="number"][name="quantity"] {
  display: none !important;
}

/* Hide product meta, related products, upsells on single product */
.single-product .product_meta,
.single-product .related,
.single-product .upsells,
.single-product .woocommerce-tabs {
  display: none !important;
}

/* Remove any shop links from breadcrumb area on single product */
.single-product .woocommerce-breadcrumb {
  display: none !important;
}

/* Responsive */
@media screen and (max-width: 768px) {
  .tmsupport-product-image-wrap {
    width: 100%;
    height: 220px;
  }

  .tmsupport-product-image {
    width: 100% !important;
    height: 220px !important;
  }

  .tmsupport-product-title {
    font-size: 1.5rem;
  }

  .tmsupport-order-btn {
    width: 100%;
  }
}


/* ==========================================================================
   TM Support Custom Two Column Checkout
   ========================================================================== */

.tmsupport-checkout-form {
  max-width: 980px;
  margin: 0 auto;
}

.tmsupport-checkout-grid {
  display: grid;
  grid-template-columns: 1.1fr 0.9fr;
  gap: 2rem;
  align-items: start;
}

.tmsupport-checkout-left,
.tmsupport-checkout-right {
  min-width: 0;
}

.tmsupport-checkout-panel {
  background-color: var(--color-card-bg);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-lg);
  padding: 1.75rem;
}

.tmsupport-checkout-heading {
  font-size: 1.2rem;
  font-weight: 700;
  color: var(--color-text);
  margin-bottom: 1.25rem;
  padding-bottom: 0.85rem;
  border-bottom: 2px solid var(--color-border);
}

/* Left column: form fields */
.tmsupport-checkout-customer .woocommerce-billing-fields,
.tmsupport-checkout-customer .woocommerce-shipping-fields {
  margin-bottom: 1.25rem;
}

.tmsupport-checkout-customer .woocommerce-billing-fields:last-child,
.tmsupport-checkout-customer .woocommerce-shipping-fields:last-child {
  margin-bottom: 0;
}

.tmsupport-checkout-customer h3 {
  font-size: 1rem;
  margin-bottom: 0.85rem;
  padding-bottom: 0.5rem;
  border-bottom: 1px solid var(--color-border);
  color: var(--color-text);
}

.tmsupport-checkout-customer .form-row {
  margin-bottom: 0.9rem;
}

.tmsupport-checkout-customer label {
  font-weight: 600;
  color: var(--color-text);
  margin-bottom: 0.3rem;
  display: block;
  font-size: 0.9rem;
}

.tmsupport-checkout-customer abbr.required {
  color: #e53935;
  text-decoration: none;
}

.tmsupport-checkout-customer input[type="text"],
.tmsupport-checkout-customer input[type="email"],
.tmsupport-checkout-customer input[type="tel"],
.tmsupport-checkout-customer input[type="password"],
.tmsupport-checkout-customer input[type="number"],
.tmsupport-checkout-customer textarea,
.tmsupport-checkout-customer select {
  width: 100%;
  border: 2px solid var(--color-border);
  border-radius: var(--radius-md);
  padding: 0.55rem 0.75rem;
  font-size: 0.95rem;
  font-family: inherit;
  transition: var(--transition);
  background-color: var(--color-card-bg);
}

.tmsupport-checkout-customer input:focus,
.tmsupport-checkout-customer textarea:focus,
.tmsupport-checkout-customer select:focus {
  border-color: var(--color-primary);
  outline: none;
  box-shadow: 0 0 0 3px var(--color-accent-light);
}

.tmsupport-checkout-customer .form-row-first,
.tmsupport-checkout-customer .form-row-last {
  width: 48%;
  float: left;
}

.tmsupport-checkout-customer .form-row-first {
  margin-right: 4%;
}

.tmsupport-checkout-customer .form-row-wide::after,
.tmsupport-checkout-customer .form-row-first::after,
.tmsupport-checkout-customer .form-row-last::after {
  content: '';
  display: block;
  clear: both;
}

/* Checkbox styling */
.tmsupport-checkout-customer .woocommerce-form__input-checkbox {
  margin-right: 0.5rem;
}

.tmsupport-checkout-customer .woocommerce-form__label-for-checkbox {
  display: flex;
  align-items: center;
  font-size: 0.9rem;
  color: var(--color-text);
  cursor: pointer;
  font-weight: 400;
}

/* Right column: order review */
.tmsupport-checkout-review-wrap {
  background-color: var(--color-light-bg);
  position: sticky;
  top: 1.5rem;
}

.tmsupport-checkout-review-wrap table.woocommerce-checkout-review-order-table {
  width: 100%;
  border-collapse: collapse;
  margin-bottom: 1.25rem;
}

.tmsupport-checkout-review-wrap table th,
.tmsupport-checkout-review-wrap table td {
  padding: 0.7rem 0.4rem;
  text-align: left;
  border-bottom: 1px solid var(--color-border);
  font-size: 0.9rem;
}

.tmsupport-checkout-review-wrap table thead th {
  font-weight: 700;
  color: var(--color-subtext);
  text-transform: uppercase;
  font-size: 0.75rem;
  letter-spacing: 0.5px;
  border-bottom: 2px solid var(--color-border);
}

.tmsupport-checkout-review-wrap table .product-name {
  color: var(--color-text);
}

.tmsupport-order-item-name {
  display: block;
  margin-bottom: 0.25rem;
}

/* Remove item link in the order review */
.tmsupport-remove-order-item {
  display: inline-flex;
  align-items: center;
  gap: 0.2rem;
  font-size: 0.78rem;
  font-weight: 600;
  color: var(--color-subtext);
  text-decoration: none !important;
  transition: var(--transition);
}

.tmsupport-remove-order-item:hover {
  color: #e53935;
}

.tmsupport-checkout-review-wrap table .product-total {
  text-align: right;
  font-weight: 600;
  color: var(--color-text);
  white-space: nowrap;
}

.tmsupport-checkout-review-wrap table .cart-subtotal td,
.tmsupport-checkout-review-wrap table .order-total td {
  text-align: right;
  font-weight: 700;
  color: var(--color-primary);
  font-size: 1rem;
}

.tmsupport-checkout-review-wrap table .order-total th,
.tmsupport-checkout-review-wrap table .order-total td {
  border-top: 2px solid var(--color-border);
  border-bottom: none;
  padding-top: 0.9rem;
  font-size: 1.15rem;
}

/* Payment section */
.tmsupport-checkout-review-wrap #payment {
  border-top: 2px solid var(--color-border);
  padding-top: 1.25rem;
}

.tmsupport-checkout-review-wrap #payment ul.payment_methods {
  list-style: none;
  padding: 0;
  margin: 0 0 1.25rem;
}

.tmsupport-checkout-review-wrap #payment ul.payment_methods li {
  padding: 0.7rem 0.9rem;
  border: 2px solid var(--color-border);
  border-radius: var(--radius-md);
  margin-bottom: 0.65rem;
  background-color: var(--color-card-bg);
  transition: var(--transition);
}

.tmsupport-checkout-review-wrap #payment ul.payment_methods li:hover {
  border-color: var(--color-primary);
}

.tmsupport-checkout-review-wrap #payment ul.payment_methods li input[type="radio"] {
  margin-right: 0.5rem;
}

.tmsupport-checkout-review-wrap #payment ul.payment_methods li label {
  font-weight: 600;
  color: var(--color-text);
  cursor: pointer;
  display: inline;
  font-size: 0.92rem;
}

.tmsupport-checkout-review-wrap #payment .payment_box {
  margin-top: 0.65rem;
  padding-top: 0.65rem;
  border-top: 1px solid var(--color-border);
  font-size: 0.85rem;
  color: var(--color-subtext);
  line-height: 1.6;
}

/* Place order button */
.tmsupport-place-order-btn {
  display: block;
  width: 100%;
  background-color: var(--color-primary);
  color: #ffffff !important;
  padding: 0.9rem 2rem;
  font-size: 1.05rem;
  font-weight: 700;
  border: none;
  border-radius: var(--radius-md);
  cursor: pointer;
  transition: var(--transition);
  text-decoration: none !important;
}

.tmsupport-place-order-btn:hover {
  background-color: var(--color-primary-hover);
  box-shadow: var(--shadow-md);
}

/* T&Cs checkbox on checkout */
.tmsupport-checkout-review-wrap .woocommerce-terms-and-conditions-wrapper {
  margin-bottom: 1.25rem;
  font-size: 0.85rem;
  color: var(--color-subtext);
}

.tmsupport-checkout-review-wrap .woocommerce-terms-and-conditions-wrapper a {
  color: var(--color-primary);
}

/* Login and coupon forms on checkout */
.woocommerce-form-login,
.woocommerce-form-coupon {
  background-color: var(--color-light-bg);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-md);
  padding: 1rem 1.25rem;
  margin-bottom: 1.25rem;
  font-size: 0.9rem;
  max-width: 980px;
  margin-left: auto;
  margin-right: auto;
}

.woocommerce-form-login p,
.woocommerce-form-coupon p {
  margin-bottom: 0.75rem;
}

.woocommerce-form-login input[type="text"],
.woocommerce-form-login input[type="password"],
.woocommerce-form-coupon input[type="text"] {
  border: 2px solid var(--color-border);
  border-radius: var(--radius-md);
  padding: 0.5rem 0.75rem;
  font-size: 0.95rem;
  width: 100%;
}

.woocommerce-form-login .button,
.woocommerce-form-coupon .button {
  background-color: var(--color-primary);
  color: #ffffff !important;
  border: none;
  border-radius: var(--radius-md);
  padding: 0.5rem 1.25rem;
  font-weight: 600;
  cursor: pointer;
}

.woocommerce-form-login .button:hover,
.woocommerce-form-coupon .button:hover {
  background-color: var(--color-primary-hover);
}

/* Order notices (e.g. "Item removed from your order") on checkout */
.woocommerce-notices-wrapper {
  max-width: 980px;
  margin: 0 auto 1.5rem;
}

/* Responsive: stack to single column on mobile */
@media screen and (max-width: 1024px) {
  .tmsupport-checkout-grid {
    grid-template-columns: 1fr;
    gap: 1.5rem;
  }

  .tmsupport-checkout-review-wrap {
    position: static;
  }
}

@media screen and (max-width: 768px) {
  .tmsupport-checkout-panel {
    padding: 1.25rem;
  }

  .tmsupport-checkout-heading {
    font-size: 1.1rem;
  }

  .tmsupport-checkout-customer .form-row-first,
  .tmsupport-checkout-customer .form-row-last {
    width: 100%;
    margin-right: 0;
    float: none;
  }

  .tmsupport-checkout-review-wrap table th,
  .tmsupport-checkout-review-wrap table td {
    font-size: 0.82rem;
    padding: 0.5rem 0.3rem;
  }
}

/* ==========================================================================
   TM Support Sticky Mobile Order Summary Bar
   Shows a sticky total bar at the bottom of the screen on mobile only
   so customers can see the running total without scrolling down to
   the order review panel. Tapping it scrolls to the full review.
   ========================================================================== */

.tmsupport-sticky-total {
  display: none;
  position: fixed;
  bottom: 0;
  left: 0;
  right: 0;
  z-index: 9999;
  background-color: var(--color-primary);
  color: #ffffff;
  padding: 0.75rem 1.25rem;
  align-items: center;
  justify-content: space-between;
  font-size: 0.95rem;
  font-weight: 700;
  box-shadow: 0 -4px 12px rgba(0, 0, 0, 0.15);
  cursor: pointer;
  border: none;
  border-radius: 0;
  width: 100%;
  text-decoration: none;
}

.tmsupport-sticky-total .tmsupport-sticky-label {
  font-size: 0.85rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.5px;
  opacity: 0.9;
}

.tmsupport-sticky-total .tmsupport-sticky-amount {
  font-size: 1.15rem;
  font-weight: 700;
}

.tmsupport-sticky-total .tmsupport-sticky-count {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 22px;
  height: 22px;
  border-radius: 50%;
  background-color: rgba(255, 255, 255, 0.25);
  font-size: 0.75rem;
  font-weight: 700;
  margin-right: 0.5rem;
  padding: 0 0.35rem;
}

/* Only show on screens under 768px */
@media screen and (max-width: 768px) {
  .tmsupport-sticky-total {
    display: flex;
  }

  /* Add bottom padding to the checkout form so content
     isn't hidden behind the sticky bar */
  .tmsupport-checkout-form {
    padding-bottom: 4rem;
    margin-bottom: 3.5rem;
  }

  .tmsupport-checkout-review-wrap {
    position: static;
  }
}
