/* ==========================================================================
   WooCommerce surfaces: notices, ratings, buttons, cart/checkout/account,
   and the streamlined digital checkout
   ========================================================================== */

.woocommerce-notices-wrapper:empty { display: none; }
.woocommerce-message, .woocommerce-info, .woocommerce-error {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 10px 16px;
  margin: 0 0 18px;
  padding: 14px 18px;
  border: 1px solid;
  border-radius: 14px;
  font-size: 14px;
  font-weight: 500;
  list-style: none;
}
.woocommerce-message { border-color: #a7f3d0; background: #ecfdf5; color: #065f46; }
.woocommerce-info { border-color: #bfdbfe; background: #eff6ff; color: #1e3a8a; }
.woocommerce-error { flex-direction: column; align-items: flex-start; border-color: #fecaca; background: #fef2f2; color: #991b1b; }
.woocommerce-message::before, .woocommerce-info::before, .woocommerce-error::before { display: none; }
.woocommerce-message a:not(.button), .woocommerce-info a:not(.button), .woocommerce-error a:not(.button) { color: inherit; font-weight: 700; }
.woocommerce-message .button, .woocommerce-info .button { order: 2; margin-left: auto; }

.star-rating {
  position: relative;
  display: inline-block;
  width: 5.6em;
  height: 1.15em;
  overflow: hidden;
  font-size: 14px;
  line-height: 1.15;
  letter-spacing: .1em;
  vertical-align: middle;
}
.star-rating::before { content: "★★★★★"; position: absolute; top: 0; left: 0; color: var(--tv-color-border-hover); }
.star-rating span { position: absolute; top: 0; left: 0; overflow: hidden; padding-top: 1.5em; }
.star-rating span::before { content: "★★★★★"; position: absolute; top: 0; left: 0; color: var(--tv-color-star); }

.woocommerce a.button, .woocommerce button.button, .woocommerce input.button,
.woocommerce #respond input#submit, .woocommerce a.button.alt, .woocommerce button.button.alt,
.woocommerce-page a.button, a.button.wc-forward {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 44px;
  padding: 10px 20px;
  border: 1.5px solid var(--tv-color-primary);
  border-radius: var(--tv-radius-button);
  background: var(--tv-color-primary);
  color: var(--tv-color-on-primary);
  font-family: var(--tv-font-sans);
  font-size: .9rem;
  font-weight: 700;
  line-height: 1.2;
  text-decoration: none;
  transition: background-color .2s var(--tv-ease), border-color .2s var(--tv-ease);
}
.woocommerce a.button:hover, .woocommerce button.button:hover, .woocommerce input.button:hover,
.woocommerce a.button.alt:hover, .woocommerce button.button.alt:hover, a.button.wc-forward:hover {
  border-color: var(--tv-color-primary-hover);
  background: var(--tv-color-primary-hover);
  color: var(--tv-color-on-primary);
}
.woocommerce #payment #place_order, .woocommerce-checkout #place_order {
  width: 100%;
  min-height: 54px;
  border-color: var(--tv-color-accent);
  background: var(--tv-color-accent);
  color: var(--tv-color-on-accent);
  font-size: 1rem;
}
.woocommerce #payment #place_order:hover { border-color: var(--tv-color-accent-hover); background: var(--tv-color-accent-hover); }

/* Cart / checkout / account pages */
.tv-commerce-page .tv-page-content { padding-bottom: clamp(48px, 7vw, 88px); }
.woocommerce form .form-row label { margin-bottom: 4px; font-size: 14px; }
.woocommerce form .form-row .required { color: var(--tv-badge-sale-text); text-decoration: none; }
.woocommerce table.shop_table { overflow: hidden; border: 1px solid var(--tv-color-border); border-radius: 16px; background: var(--tv-color-surface); }
.woocommerce-checkout #payment { border-radius: 16px; background: var(--tv-color-muted-bg); }
.woocommerce-account .woocommerce-MyAccount-navigation ul { margin: 0; padding: 0; list-style: none; }
.woocommerce-account .woocommerce-MyAccount-navigation a { display: block; padding: 10px 14px; border-radius: 10px; color: var(--tv-color-text-body); font-weight: 600; text-decoration: none; }
.woocommerce-account .woocommerce-MyAccount-navigation .is-active a,
.woocommerce-account .woocommerce-MyAccount-navigation a:hover { background: var(--tv-color-surface); color: var(--tv-color-text-main); }
.woocommerce-order-downloads .download-file a.button { min-height: 38px; padding: 6px 14px; }

/* Distraction-free checkout header */
.woocommerce-checkout .tv-primary-nav,
.woocommerce-checkout .tv-header-search,
.woocommerce-checkout .tv-search-toggle { display: none; }

/* Streamlined digital checkout (classic shortcode checkout) */
.tv-hidden-field { display: none !important; }
.tv-digital-checkout form.checkout {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(320px, .9fr);
  align-items: start;
  gap: 8px 40px;
}
.tv-digital-checkout form.checkout > .woocommerce-NoticeGroup,
.tv-digital-checkout form.checkout > .woocommerce-notices-wrapper { grid-column: 1 / -1; }
.tv-digital-checkout form.checkout .col2-set { grid-row: 1 / span 2; grid-column: 1; width: 100%; float: none; }
.tv-digital-checkout form.checkout .col2-set .col-1,
.tv-digital-checkout form.checkout .col2-set .col-2 { width: 100%; float: none; }
.tv-digital-checkout form.checkout .col2-set .col-2:empty,
.tv-digital-checkout .woocommerce-shipping-fields:empty,
.tv-digital-checkout .woocommerce-additional-fields:empty { display: none; }
.tv-digital-checkout #order_review_heading { grid-column: 2; margin-top: 0; }
.tv-digital-checkout #order_review { grid-column: 2; }
.tv-digital-checkout .woocommerce-billing-fields {
  padding: clamp(18px, 2.4vw, 28px);
  border: 1px solid var(--tv-color-border);
  border-radius: var(--tv-radius-panel);
  background: var(--tv-color-surface);
}
@media (max-width: 900px) {
  .tv-digital-checkout form.checkout { grid-template-columns: minmax(0, 1fr); }
  .tv-digital-checkout form.checkout .col2-set,
  .tv-digital-checkout #order_review_heading,
  .tv-digital-checkout #order_review { grid-row: auto; grid-column: 1; }
}

.woocommerce-store-notice, p.demo_store {
  position: fixed;
  right: 0;
  bottom: 0;
  left: 0;
  z-index: 99;
  margin: 0;
  padding: 12px var(--tv-gutter);
  background: var(--tv-color-primary);
  color: var(--tv-color-on-primary);
  font-size: 14px;
  text-align: center;
}
.woocommerce-store-notice a { color: inherit; font-weight: 700; }
.tv-checkout-note { margin: -4px 0 16px; color: var(--tv-color-text-muted); font-size: 13.5px; }
