/* ============================================================
 * v2.1.4 — final pro polish: cart notice, cards, header, mobile
 * ============================================================ */

/* Make the skip-link actually visible when keyboard users tab into the page. */
.skip-link.screen-reader-text:focus {
  clip: auto !important;
  clip-path: none !important;
  width: auto !important;
  height: auto !important;
  left: 16px !important;
  top: 16px !important;
  z-index: 999999 !important;
  padding: 12px 16px !important;
  background: var(--vlg-dark, #071224) !important;
  color: #fff !important;
  border-radius: 12px !important;
  box-shadow: 0 16px 38px rgba(15, 23, 42, .28) !important;
}

/* Cart notice: remove Woo/blockUI remnants and keep the green icon clean. */
.woocommerce-cart .woocommerce-notices-wrapper > .blockUI,
.woocommerce-cart .woocommerce-notices-wrapper > .blockOverlay,
.woocommerce-cart .woocommerce-notices-wrapper .woocommerce-message > .blockUI,
.woocommerce-cart .woocommerce-notices-wrapper .woocommerce-message > .blockOverlay,
.woocommerce-cart .woocommerce-notices-wrapper .loader,
.woocommerce-cart .woocommerce-notices-wrapper .loading,
.woocommerce-cart .woocommerce-notices-wrapper [class*="spinner"] {
  display: none !important;
  visibility: hidden !important;
  opacity: 0 !important;
  width: 0 !important;
  height: 0 !important;
  pointer-events: none !important;
}

.woocommerce-cart .woocommerce-message,
.woocommerce-cart .woocommerce-info,
.woocommerce-cart .woocommerce-error {
  isolation: isolate !important;
  padding-left: 58px !important;
  min-height: 58px !important;
  line-height: 1.45 !important;
}

.woocommerce-cart .woocommerce-message::before,
.woocommerce-cart .woocommerce-info::before,
.woocommerce-cart .woocommerce-error::before {
  left: 18px !important;
  z-index: 1 !important;
  box-sizing: border-box !important;
}

.woocommerce-cart .woocommerce-message > *,
.woocommerce-cart .woocommerce-info > *,
.woocommerce-cart .woocommerce-error > * {
  position: relative !important;
  z-index: 2 !important;
}

.woocommerce-cart .woocommerce-message a.restore-item,
.woocommerce-cart .woocommerce-message .button.wc-forward {
  white-space: nowrap !important;
}

/* Cart table: keep content aligned and mobile-safe. */
.woocommerce-cart table.cart td.product-name a,
.woocommerce-cart table.cart td.product-price,
.woocommerce-cart table.cart td.product-subtotal {
  color: var(--vlg-dark, #071224) !important;
  font-weight: 850 !important;
}
.woocommerce-cart table.cart td.product-name a:hover { color: var(--vlg-primary, #f28a00) !important; }
.woocommerce-cart table.cart img { border-radius: 12px !important; background: #fff !important; }
.woocommerce-cart .cart_totals h2 { font-size: clamp(22px, 3vw, 28px) !important; margin-top: 0 !important; }
.woocommerce-cart .wc-proceed-to-checkout .checkout-button { width: 100% !important; text-align: center !important; }

/* Product cards: equal rhythm, better hover, and no button hanging outside the card. */
.vlg-product-card,
ul.products li.product.vlg-product-card,
.vlg-latest-showcase .vlg-product-card {
  display: flex !important;
  flex-direction: column !important;
  min-height: 100% !important;
  overflow: hidden !important;
}
.vlg-product-card .vlg-card-body,
ul.products li.product.vlg-product-card .vlg-card-body {
  flex: 1 1 auto !important;
}
.vlg-product-card .vlg-card-actions,
ul.products li.product.vlg-product-card .vlg-card-actions,
.vlg-latest-showcase .vlg-product-card .vlg-card-actions {
  margin-top: auto !important;
  position: static !important;
  transform: none !important;
  padding: 12px 14px 16px !important;
}
.vlg-product-card .button,
.vlg-product-card .vlg-card-cart,
ul.products li.product.vlg-product-card .button {
  min-height: 48px !important;
  border-radius: 14px !important;
}
.vlg-product-card:hover {
  transform: translateY(-2px) !important;
  box-shadow: 0 20px 48px rgba(15, 23, 42, .10) !important;
}

/* Latest section: give enough breathing room when product cards are shown in a horizontal showcase. */
.vlg-latest-showcase,
.vlg-section-latest,
.vlg-home-latest {
  overflow: visible !important;
  padding-bottom: 34px !important;
}
.vlg-latest-showcase .products,
.vlg-section-latest .products {
  align-items: stretch !important;
}

/* Header and search polish. */
.vlg-site-header { z-index: 1000 !important; }
.vlg-search input[type="search"],
.vlg-search input[type="text"] {
  text-overflow: ellipsis !important;
}
.vlg-search button,
.vlg-btn,
.vlg-card-actions .button,
.single_add_to_cart_button,
.checkout-button,
#place_order {
  transition: transform .18s ease, box-shadow .18s ease, filter .18s ease, background-color .18s ease !important;
}
.vlg-search button:hover,
.vlg-btn:hover,
.vlg-card-actions .button:hover,
.single_add_to_cart_button:hover,
.checkout-button:hover,
#place_order:hover {
  transform: translateY(-1px) !important;
}

/* Forms: more consistent field spacing and visible validation. */
.woocommerce form .form-row input.input-text,
.woocommerce form .form-row textarea,
.woocommerce form .form-row select,
.vlg-contact-form input,
.vlg-contact-form textarea,
.vlg-contact-form select {
  font-size: 15px !important;
}
.woocommerce form .form-row.woocommerce-invalid input.input-text,
.woocommerce form .form-row.woocommerce-invalid select,
.woocommerce form .form-row.woocommerce-invalid textarea {
  border-color: #ef4444 !important;
  box-shadow: 0 0 0 3px rgba(239, 68, 68, .12) !important;
}
.woocommerce form .form-row.woocommerce-validated input.input-text,
.woocommerce form .form-row.woocommerce-validated select,
.woocommerce form .form-row.woocommerce-validated textarea {
  border-color: #84cc16 !important;
}

/* Contact page: make info cards and form look stable with long texts. */
.vlg-contact-card,
.vlg-contact-pro-card,
.vlg-contact-form-card {
  overflow-wrap: anywhere !important;
}
.vlg-contact-form button[type="submit"] {
  min-height: 52px !important;
}

/* Admin hero preset cards: make the chosen preset obvious. */
.vlg-hero-preset-card:has(input:checked),
.vlg-hero-preset-card.is-active {
  border-color: var(--vlg-primary, #f28a00) !important;
  box-shadow: 0 0 0 3px rgba(242, 138, 0, .14) !important;
}
.vlg-admin-panel details[open] > summary {
  color: var(--vlg-primary, #f28a00) !important;
}

@media (max-width: 900px) {
  .vlg-main-header-inner {
    gap: 10px !important;
  }
  .vlg-header-actions {
    gap: 8px !important;
  }
  .vlg-account-link small,
  .vlg-wishlist-link span:not(.vlg-icon):not(.vlg-badge),
  .vlg-cart-link small {
    display: none !important;
  }
  .woocommerce-cart .woocommerce-message,
  .woocommerce-cart .woocommerce-info,
  .woocommerce-cart .woocommerce-error {
    align-items: flex-start !important;
    padding-right: 14px !important;
  }
}

@media (max-width: 640px) {
  .vlg-latest-showcase,
  .vlg-section-latest,
  .vlg-home-latest {
    padding-bottom: 22px !important;
  }
  .woocommerce-cart .woocommerce-message,
  .woocommerce-cart .woocommerce-info,
  .woocommerce-cart .woocommerce-error {
    display: block !important;
    padding-left: 52px !important;
    font-size: 14px !important;
  }
  .woocommerce-cart .woocommerce-message a.restore-item,
  .woocommerce-cart .woocommerce-message .button.wc-forward {
    display: inline-block !important;
    margin-top: 4px !important;
  }
}
