/* Native Woo only. Gateways, checkout fields and order handling remain plugin-owned. */
.vm-commerce .vm-main { padding-block: clamp(2rem, 5vw, 4.5rem); }
.vm-commerce .vm-page-head { margin-bottom: 2rem; }
.vm-commerce .vm-account-intro { max-width: 52rem; margin-bottom: 2.5rem; }
.vm-commerce .vm-cart-nav { margin-bottom: 1.75rem; font-size: .875rem; color: var(--ivory-dim); }
:is(.vm-commerce.woocommerce, .vm-commerce .woocommerce) a { text-underline-offset: .22em; }
:is(.vm-commerce.woocommerce, .vm-commerce .woocommerce) a.button,
:is(.vm-commerce.woocommerce, .vm-commerce .woocommerce) button.button,
:is(.vm-commerce.woocommerce, .vm-commerce .woocommerce) input.button {
  border: 1px solid var(--line-2); border-radius: 0; padding: .95rem 1.25rem;
  background: var(--carbon); color: var(--ivory); font: inherit; font-size: .9rem; line-height: 1.3;
}
:is(.vm-commerce.woocommerce, .vm-commerce .woocommerce) a.button.alt,
:is(.vm-commerce.woocommerce, .vm-commerce .woocommerce) button.button.alt { background: var(--oxblood); border-color: var(--oxblood); color: #fff; }
:is(.vm-commerce.woocommerce, .vm-commerce .woocommerce) a.button:hover,
:is(.vm-commerce.woocommerce, .vm-commerce .woocommerce) button.button:hover { filter: brightness(1.2); }
:is(.vm-commerce.woocommerce, .vm-commerce .woocommerce) button.button:disabled { opacity: .45; cursor: default; }
:is(.vm-commerce.woocommerce, .vm-commerce .woocommerce) form .form-row input.input-text,
:is(.vm-commerce.woocommerce, .vm-commerce .woocommerce) form .form-row textarea,
:is(.vm-commerce.woocommerce, .vm-commerce .woocommerce) form .form-row select,
:is(.vm-commerce.woocommerce, .vm-commerce .woocommerce) .quantity .qty {
  background: var(--carbon); color: var(--ivory); border: 1px solid var(--line-2);
  border-radius: 0; min-height: 44px; padding: .65rem .8rem; font: inherit; font-size: .95rem;
}
:is(.vm-commerce.woocommerce, .vm-commerce .woocommerce) input[type="checkbox"] { accent-color: var(--oxblood); }
:is(.vm-commerce.woocommerce, .vm-commerce .woocommerce) .quantity .qty { width: 4.5rem; }
:is(.vm-commerce.woocommerce, .vm-commerce .woocommerce) form.login,
:is(.vm-commerce.woocommerce, .vm-commerce .woocommerce) form.register,
:is(.vm-commerce.woocommerce, .vm-commerce .woocommerce) table.shop_table { border-color: var(--line-2); border-radius: 0; }
:is(.vm-commerce.woocommerce, .vm-commerce .woocommerce) table.shop_table th,
:is(.vm-commerce.woocommerce, .vm-commerce .woocommerce) table.shop_table td { padding: 1rem; border-color: var(--line); }
:is(.vm-commerce.woocommerce, .vm-commerce .woocommerce) .cart-collaterals { margin-top: 2.5rem; }
:is(.vm-commerce.woocommerce, .vm-commerce .woocommerce) .cart_totals h2 { font-size: 1.3rem; margin-bottom: 1rem; }
:is(.vm-commerce.woocommerce, .vm-commerce .woocommerce) .cart_totals .checkout-button { margin-top: .75rem; }
:is(.vm-commerce.woocommerce, .vm-commerce .woocommerce) form.login { max-width: 42rem; padding: clamp(1.25rem, 3vw, 2rem); }
.vm-commerce .woocommerce-MyAccount-navigation ul { list-style: none; margin: 0; padding: 0; }
.vm-commerce .woocommerce-MyAccount-navigation li { border-bottom: 1px solid var(--line); }
.vm-commerce .woocommerce-MyAccount-navigation a { display: block; padding: .9rem .5rem; }
.vm-commerce .woocommerce-MyAccount-navigation .is-active a { color: var(--ivory); border-left: 2px solid var(--oxblood); padding-left: 1rem; }
.vm-commerce .woocommerce-MyAccount-content { min-width: 0; overflow-wrap: anywhere; }
:is(.vm-commerce.woocommerce, .vm-commerce .woocommerce) #payment,
:is(.vm-commerce.woocommerce, .vm-commerce .woocommerce) #payment div.payment_box { background: var(--carbon); color: var(--ivory); border-radius: 0; }
:is(.vm-commerce.woocommerce, .vm-commerce .woocommerce) #payment div.payment_box::before { border-bottom-color: var(--carbon); }
:is(.vm-commerce.woocommerce, .vm-commerce .woocommerce) #payment ul.payment_methods { border-color: var(--line-2); }
:is(.vm-commerce.woocommerce, .vm-commerce .woocommerce) .select2-container--default .select2-selection--single { background: var(--carbon); border-color: var(--line-2); border-radius: 0; min-height: 44px; }
:is(.vm-commerce.woocommerce, .vm-commerce .woocommerce) .select2-container--default .select2-selection--single .select2-selection__rendered { color: var(--ivory); line-height: 42px; }
:is(.vm-commerce.woocommerce, .vm-commerce .woocommerce) .select2-container--default .select2-selection--single .select2-selection__arrow { height: 42px; }
@media (max-width: 768px) {
  .vm-commerce .woocommerce-MyAccount-navigation { margin-bottom: 2rem; }
  :is(.vm-commerce.woocommerce, .vm-commerce .woocommerce) table.shop_table th,
  :is(.vm-commerce.woocommerce, .vm-commerce .woocommerce) table.shop_table td { padding: .8rem; }
  :is(.vm-commerce.woocommerce, .vm-commerce .woocommerce) .cart-collaterals { margin-top: 1.75rem; }
}

/* Woo archives/products use the body class, while cart/account use a shortcode wrapper. */
.vm-commerce #primary,
.vm-commerce [role="complementary"] { width: 100%; max-width: var(--maxw-wide); margin-inline: auto; padding-inline: var(--px); }
.vm-commerce [role="complementary"] { margin-top: 4rem; padding-block: 2rem; border-top: 1px solid var(--line); }
.vm-commerce.woocommerce ul.products { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 2.5rem 1.5rem; }
.vm-commerce.woocommerce ul.products::before,
.vm-commerce.woocommerce ul.products::after { content: none; }
.vm-commerce.woocommerce ul.products li.product { float: none; width: auto; margin: 0; min-width: 0; display: flex; flex-direction: column; }
.vm-commerce.woocommerce ul.products li.product .woocommerce-loop-product__link { flex: 1; }
.vm-commerce.woocommerce ul.products li.product a img { aspect-ratio: 4 / 5; object-fit: cover; }
.vm-commerce.woocommerce ul.products li.product .button { align-self: flex-start; }
.vm-commerce.woocommerce ul.products li.product .onsale { top: .5rem; right: .5rem; margin: 0; min-height: 0; line-height: 1.4; padding: .5rem .65rem; border-radius: 0; background: var(--oxblood); color: #fff; }
.vm-commerce.woocommerce ul.products li.product .price,
.vm-commerce.woocommerce div.product p.price,
.vm-commerce.woocommerce div.product span.price { color: var(--ivory); font-variant-numeric: tabular-nums; }
.vm-commerce.woocommerce .woocommerce-ordering select { max-width: 100%; min-height: 44px; padding: .5rem; background: var(--carbon); color: var(--ivory); border: 1px solid var(--line-2); }
@media (max-width: 768px) {
 .vm-commerce.woocommerce ul.products { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 2rem 1rem; }
 .vm-commerce.woocommerce .woocommerce-result-count,
 .vm-commerce.woocommerce .woocommerce-ordering { float: none; margin-bottom: 1rem; }
 .vm-commerce.woocommerce ul.products li.product .woocommerce-loop-product__title { font-size: 1rem; line-height: 1.35; }
 .vm-commerce.woocommerce ul.products li.product .button { width: 100%; text-align: center; padding-inline: .5rem; }
}

/* These native product galleries use hidden; vm-core has a different dialog. */
:is(body.postid-11178, body.postid-11331).vm-commerce #vm-lightbox:not([hidden]) { opacity: 1; visibility: visible; }
:is(body.postid-11178, body.postid-11331).vm-commerce #vm-lightbox:not([hidden]) .vm-lightbox__img { opacity: 1; transform: none; max-width: 100%; }
:is(body.postid-11178, body.postid-11331).vm-commerce #vm-lightbox:not([hidden]) .vm-lightbox__stage { min-width: 0; }
