/* Commerce uses the portal's utility panels and solid article surface. */
.lvd-portal {
  --lvd-commerce-border: color-mix(in srgb,var(--lvd-accent) 35%,var(--lvd-line));
  --lvd-commerce-panel: radial-gradient(circle at 100% 0,color-mix(in srgb,var(--lvd-accent) 8%,transparent),transparent 48%),var(--lvd-surface);
  --lvd-commerce-shadow: 0 18px 44px #00000014,inset 0 1px 0 #ffffff14;
}
.lvd-portal .lvd-store-catalog :is(.woocommerce-products-header__title,h1.page-title) { display:none; }
.lvd-portal .lvd-shop-intro { justify-content:flex-end; }
.lvd-portal :is(.lvd-store,.lvd-store-products) ul.products {
  gap:24px;
  align-items:stretch;
}
.lvd-portal :is(.lvd-store,.lvd-store-products) ul.products li.product {
  display:flex;
  flex-direction:column;
  float:none;
  width:auto!important;
  margin:0!important;
  min-width:0;
  padding:24px;
  border:1px solid var(--lvd-commerce-border);
  border-radius:calc(var(--lvd-radius) + 4px);
  background:var(--lvd-commerce-panel);
  box-shadow:var(--lvd-commerce-shadow);
}
.lvd-portal :is(.lvd-store,.lvd-store-products) ul.products li.product .woocommerce-loop-product__link {
  display:flex;
  flex-direction:column;
  flex:1;
  text-decoration:none;
}
.lvd-portal :is(.lvd-store,.lvd-store-products) ul.products li.product img {
  width:100%;
  aspect-ratio:4/3;
  object-fit:contain;
  margin:0 0 20px;
  border-radius:10px;
}
.lvd-portal :is(.lvd-store,.lvd-store-products) ul.products li.product h2 {
  font:600 clamp(19px,1.7vw,24px)/1.3 var(--lvd-heading-font);
  margin:0 0 14px;
  padding:0;
}
.lvd-portal :is(.lvd-store,.lvd-store-products) ul.products li.product .price {
  margin-top:auto;
  color:var(--lvd-accent);
  font:600 14px/1.6 system-ui,sans-serif;
}
.lvd-portal :is(.lvd-store,.lvd-store-products) ul.products li.product .button {
  margin-top:20px;
  text-align:center;
}
.lvd-portal :is(.lvd-store,.lvd-store-products) ul.products li.product .added_to_cart {
  margin-top:10px;
  text-align:center;
  color:var(--lvd-accent);
}
.lvd-portal .lvd-store .woocommerce-result-count {
  color:var(--lvd-muted);
  font-size:13px;
}
.lvd-portal .lvd-store .woocommerce-ordering select { min-width:220px; }

/* Product details and the compact sticky purchase widget share a clean top edge. */
.lvd-portal:has(.lvd-product-article) .lvd-page-intro { display:none; }
.lvd-portal .lvd-store.lvd-product-article {
  position:relative;
  margin:8px auto 0;
  padding:0;
  border:0;
  background:transparent;
  box-shadow:none;
}
.lvd-portal .lvd-store.lvd-product-article > .product {
  display:grid;
  grid-template-columns:minmax(0,3fr) minmax(280px,1fr);
  gap:24px;
  align-items:start;
}
.lvd-portal .lvd-store.lvd-product-article > .product:before,
.lvd-portal .lvd-store.lvd-product-article > .product:after { display:none; }
.lvd-portal .lvd-store.lvd-product-article .lvd-product-information {
  grid-column:1;
  grid-row:1;
  min-width:0;
  margin:0!important;
}
.lvd-portal .lvd-store.lvd-product-article .lvd-product-purchase-column {
  grid-column:2;
  grid-row:1;
  min-width:0;
  margin:0!important;
  align-self:stretch;
}
.lvd-portal .lvd-store.lvd-product-article .lvd-product-purchase-widget {
  position:sticky;
  top:80px;
  display:grid;
  gap:0;
  margin:0;
  padding:clamp(18px,2vw,26px);
  border:1px solid var(--lvd-commerce-border);
  border-radius:calc(var(--lvd-radius) + 4px);
  background:var(--lvd-commerce-panel);
  box-shadow:var(--lvd-commerce-shadow);
}
.lvd-portal .lvd-store.lvd-product-article .woocommerce-product-gallery,
.lvd-portal .lvd-store.lvd-product-article .summary {
  float:none!important;
  width:100%!important;
  margin:0!important;
  min-width:0;
}
.lvd-portal .lvd-store.lvd-product-article :is(.lvd-product-information,.related,.upsells) {
  position:relative;
  padding:clamp(22px,2.5vw,34px);
  border:1px solid var(--lvd-commerce-border);
  border-radius:calc(var(--lvd-radius) + 4px);
  background:var(--lvd-commerce-panel);
  box-shadow:var(--lvd-commerce-shadow);
}
.lvd-portal .lvd-store.lvd-product-article .woocommerce-product-gallery {
  align-self:start;
  overflow:hidden;
  padding:0;
  border:0;
  border-radius:10px;
  background:transparent;
  box-shadow:none;
}
.lvd-portal .lvd-store.lvd-product-article .woocommerce-product-gallery img {
  display:block;
  width:100%;
  max-height:min(25vh,220px);
  object-fit:contain;
  border-radius:8px;
}
.lvd-portal .lvd-store.lvd-product-article .summary {
  padding:14px 0 0;
  border:0;
  border-top:1px solid var(--lvd-line);
  background:transparent;
  box-shadow:none;
  text-align:left;
}
.lvd-portal .lvd-store.lvd-product-article .lvd-product-information h1.product_title {
  margin:0 0 26px;
  font-family:var(--lvd-heading-font,system-ui,sans-serif)!important;
  font-size:clamp(29px,2.7vw,38px)!important;
  font-weight:650!important;
  line-height:1.14!important;
}
.lvd-portal .lvd-store.lvd-product-article .summary .price {
  font:600 19px/1.5 system-ui,sans-serif;
  color:var(--lvd-accent);
  margin:0 0 14px;
}
.lvd-portal .lvd-subscription-schedule { display:grid;gap:14px; }
.lvd-portal .lvd-subscription-upfront { display:flex;flex-wrap:wrap;align-items:baseline;gap:10px; }
.lvd-portal .lvd-subscription-upfront strong {
  color:var(--lvd-text);
  font:650 clamp(24px,2.3vw,32px)/1.1 var(--lvd-heading-font,system-ui,sans-serif);
}
.lvd-portal .lvd-subscription-upfront > span {
  color:var(--lvd-muted);
  font:600 13px/1.5 system-ui,sans-serif;
  text-transform:uppercase;
  letter-spacing:.06em;
}
.lvd-portal .lvd-subscription-renewal {
  display:block;
  padding:15px 18px;
  border:1px solid var(--lvd-line);
  border-radius:10px;
  background:color-mix(in srgb,var(--lvd-accent) 6%,var(--lvd-surface));
  color:var(--lvd-text);
  font:500 16px/1.5 system-ui,sans-serif;
  text-align:center;
}
.lvd-portal .lvd-subscription-renewal strong { color:var(--lvd-accent);font-weight:750; }
.lvd-portal .lvd-subscription-renewal small { display:block;margin-top:3px;color:var(--lvd-muted);font-size:13px; }
.lvd-portal :is(.lvd-store,.lvd-store-products) ul.products li.product .lvd-subscription-upfront strong { font-size:25px; }
.lvd-portal :is(.lvd-store,.lvd-store-products) ul.products li.product .lvd-subscription-renewal { padding:10px 12px;font-size:13px; }
.lvd-portal :is(.lvd-store,.lvd-store-products) ul.products li.product .lvd-subscription-renewal small { font-size:12px; }
.lvd-portal .lvd-store.lvd-product-article .summary .product_meta {
  margin-top:22px;
  padding-top:18px;
  border-top:1px solid var(--lvd-line);
  color:var(--lvd-muted);
  font-size:13px;
}
.lvd-portal .lvd-store.lvd-product-article .lvd-product-information .woocommerce-product-details__short-description {
  color:var(--lvd-muted);
  line-height:1.8;
}
.lvd-portal .lvd-store.lvd-product-article .lvd-product-description {
  margin-top:24px;
  line-height:1.85;
}
.lvd-portal .lvd-store.lvd-product-article .summary form.cart {
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:12px;
  padding-top:16px;
  margin-top:16px;
  border-top:1px solid var(--lvd-line);
}
.lvd-portal .lvd-store.lvd-product-article .summary form.variations_form { display:block; }
.lvd-portal .lvd-store.lvd-product-article .quantity { margin:0!important; }
.lvd-portal .lvd-store.lvd-product-article .product:is(.product-type-subscription,.product-type-variable-subscription) .summary form.cart .quantity { display:none!important; }
.lvd-portal .lvd-store.lvd-product-article .product:is(.product-type-subscription,.product-type-variable-subscription) .summary form.cart {
  justify-content:center;
  text-align:left;
}
.lvd-portal .lvd-store.lvd-product-article .product:is(.product-type-subscription,.product-type-variable-subscription) .summary form.cart .single_add_to_cart_button {
  width:min(100%,230px);
  min-height:48px;
  margin:0;
  text-align:center;
}
.lvd-portal .lvd-store.lvd-product-article .product:is(.product-type-subscription,.product-type-variable-subscription) .summary form.cart > .single_add_to_cart_button ~ :is(div,p,section,aside) {
  flex:0 0 100%;
  max-width:100%;
  text-align:left;
}
.lvd-portal .lvd-store.lvd-product-article :is(.related,.upsells) { grid-column:1/-1; }
.lvd-portal .lvd-store.lvd-product-article .woocommerce-tabs {
  margin:20px 0 0;
  padding:0;
  border:0;
  background:transparent;
  box-shadow:none;
}
.lvd-portal .lvd-store.lvd-product-article .woocommerce-tabs ul.tabs:has(li:only-child) { display:none; }
.lvd-portal .lvd-store.lvd-product-article .woocommerce-tabs:has(ul.tabs li:only-child) .woocommerce-Tabs-panel > h2:first-child { display:none; }
.lvd-portal .lvd-store.lvd-product-article .woocommerce-tabs ul.tabs {
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  padding:0;
  margin:0 0 28px;
}
.lvd-portal .lvd-store.lvd-product-article .woocommerce-tabs ul.tabs:before,
.lvd-portal .lvd-store.lvd-product-article .woocommerce-tabs ul.tabs li:before,
.lvd-portal .lvd-store.lvd-product-article .woocommerce-tabs ul.tabs li:after { display:none; }
.lvd-portal .lvd-store.lvd-product-article .woocommerce-tabs ul.tabs li {
  border:1px solid var(--lvd-line);
  background:transparent;
  border-radius:8px;
  margin:0;
  padding:0;
}
.lvd-portal .lvd-store.lvd-product-article .woocommerce-tabs ul.tabs li a {
  padding:10px 18px;
  color:var(--lvd-text);
  font:600 13px/1.5 system-ui,sans-serif;
}
.lvd-portal .lvd-store.lvd-product-article .woocommerce-tabs ul.tabs li.active {
  border-color:var(--lvd-accent);
  background:color-mix(in srgb,var(--lvd-accent) 9%,var(--lvd-surface));
}
.lvd-portal .lvd-store.lvd-product-article .woocommerce-Tabs-panel {
  max-width:900px;
  margin:0;
  font-size:16px;
  line-height:1.85;
}
.lvd-portal .lvd-store.lvd-product-article .woocommerce-Tabs-panel :is(h2,h3,h4) {
  margin:1.8em 0 .7em;
}
.lvd-portal .lvd-store.lvd-product-article .woocommerce-Tabs-panel :is(h1,h2,h3) {
  font-size:clamp(23px,2.2vw,30px);
  line-height:1.25;
}
.lvd-portal .lvd-store.lvd-product-article .woocommerce-Tabs-panel > h2:first-child { margin-top:0; }

/* Cart and checkout use the same panel rhythm as dashboard utility widgets. */
.lvd-portal :is(.lvd-native-cart .woocommerce-cart-form,
  .lvd-native-cart .cart_totals,
  .lvd-native-checkout .wc-block-checkout__main,
  .lvd-native-checkout .wc-block-checkout__sidebar,
  .lvd-native-checkout form.checkout) {
  min-width:0;
  padding:28px;
  border:1px solid var(--lvd-commerce-border);
  border-radius:calc(var(--lvd-radius) + 4px);
  background:var(--lvd-commerce-panel);
  box-shadow:var(--lvd-commerce-shadow);
}
.lvd-portal .lvd-native-cart .woocommerce {
  display:grid;
  grid-template-columns:minmax(0,1.65fr) minmax(260px,1fr);
  gap:24px;
  align-items:start;
}
.lvd-portal .lvd-native-cart .woocommerce > :not(.woocommerce-cart-form):not(.cart-collaterals) { grid-column:1/-1; }
.lvd-portal .lvd-native-cart .cart-collaterals,
.lvd-portal .lvd-native-cart .cart_totals { width:100%!important;float:none!important; }
.lvd-portal .lvd-native-cart table.shop_table {
  border:0;
  margin:0;
  border-collapse:collapse;
}
.lvd-portal .lvd-native-cart table.shop_table :is(th,td) {
  border-color:var(--lvd-line);
  padding:16px 10px;
}
.lvd-portal .lvd-native-cart .cart_totals h2 { margin:0 0 18px;font-size:26px; }
.lvd-portal .lvd-native-cart .product-thumbnail img { width:60px;border-radius:8px; }
.lvd-portal .lvd-native-cart .product-name a { color:var(--lvd-text);font-weight:600;text-decoration:none; }
.lvd-portal .lvd-native-cart .wc-proceed-to-checkout { padding:20px 0 0; }
.lvd-portal .lvd-native-cart .wc-proceed-to-checkout .button { margin:0;width:100%;font-size:14px; }
.lvd-portal .lvd-native-cart:not(:has(.woocommerce-cart-form)) > .woocommerce {
  padding:28px;
  background:var(--lvd-commerce-panel);
  border:1px solid var(--lvd-commerce-border);
  border-radius:calc(var(--lvd-radius) + 4px);
}
.lvd-portal .lvd-native-checkout .wc-block-components-sidebar-layout {
  display:grid;
  grid-template-columns:minmax(0,1.5fr) minmax(280px,1fr);
  gap:24px;
  align-items:start;
}
.lvd-portal .lvd-native-checkout .wc-block-components-sidebar-layout > * {
  width:100%!important;
  margin:0!important;
}
.lvd-portal .lvd-native-checkout .wc-block-checkout__main { grid-column:1;grid-row:1; }
.lvd-portal .lvd-native-checkout .wc-block-checkout__sidebar { grid-column:2;grid-row:1; }
.lvd-portal .lvd-native-checkout :is(.wc-block-components-title,h3) { font:600 24px/1.3 var(--lvd-heading-font); }
.lvd-portal .lvd-native-checkout :is(.wc-blocks-components-select__container,.wc-block-components-text-input input) {
  background:var(--lvd-surface);
  color:var(--lvd-text);
  border-color:var(--lvd-line);
}
.lvd-portal .lvd-native-checkout .wc-block-components-checkout-place-order-button {
  background:var(--lvd-accent);
  color:var(--lvd-on-accent);
  border-color:var(--lvd-accent);
}
.lvd-portal .lvd-native-checkout :is(.wc-block-components-order-summary,.wc-block-components-radio-control) {
  color:var(--lvd-text);
  border-color:var(--lvd-line);
}
.lvd-portal .lvd-native-checkout :is(.wc-block-components-totals-wrapper,.wc-block-components-radio-control__option) {
  border-color:var(--lvd-line);
}
.lvd-portal .lvd-native-checkout .wc-block-components-radio-control__option { background:var(--lvd-surface); }
@media(max-width:1100px) {
  .lvd-portal .lvd-native-cart .woocommerce,
  .lvd-portal .lvd-native-checkout .wc-block-components-sidebar-layout { grid-template-columns:1fr; }
  .lvd-portal .lvd-native-checkout .wc-block-checkout__main { grid-column:1;grid-row:1; }
  .lvd-portal .lvd-native-checkout .wc-block-checkout__sidebar { grid-column:1;grid-row:2; }
}
@media(max-width:1100px) {
  .lvd-portal .lvd-store.lvd-product-article > .product { grid-template-columns:1fr;gap:24px; }
  .lvd-portal .lvd-store.lvd-product-article .lvd-product-information { grid-column:1;grid-row:1; }
  .lvd-portal .lvd-store.lvd-product-article .lvd-product-purchase-column { grid-column:1;grid-row:2;margin:0!important; }
  .lvd-portal .lvd-store.lvd-product-article .lvd-product-purchase-widget { position:static; }
  .lvd-portal .lvd-store.lvd-product-article :is(.related,.upsells) { grid-column:1; }
  .lvd-portal .lvd-store.lvd-product-article { padding:0; }
}
@media(max-height:700px) {
  .lvd-portal .lvd-store.lvd-product-article .lvd-product-purchase-widget { position:static; }
}
@media(max-width:782px) {
  .lvd-portal :is(.lvd-native-cart .woocommerce-cart-form,.lvd-native-cart .cart_totals,
    .lvd-native-checkout .wc-block-checkout__main,.lvd-native-checkout .wc-block-checkout__sidebar,
    .lvd-native-checkout form.checkout) { padding:20px; }
  .lvd-portal .lvd-store .woocommerce-ordering { float:none;margin:0; }
  .lvd-portal .lvd-store .woocommerce-ordering select { width:100%; }
}

.lvd-portal :is(.lvd-store ul.products li.product,
  .lvd-store-products ul.products li.product,
  .lvd-native-cart .woocommerce-cart-form,.lvd-native-cart .cart_totals,
  .lvd-native-checkout .wc-block-checkout__main,.lvd-native-checkout .wc-block-checkout__sidebar,
  .lvd-native-checkout form.checkout) { position:relative;z-index:1; }
.lvd-portal .lvd-native-cart:not(:has(.woocommerce-cart-form)) .woocommerce { position:relative;z-index:1; }
@media(max-width:1440px) { .lvd-portal .lvd-native-cart .woocommerce { grid-template-columns:1fr; } }
.lvd-portal :is(.lvd-store ul.products li.product,.lvd-store-products ul.products li.product,
  .lvd-native-cart .woocommerce-cart-form,.lvd-native-cart .cart_totals,
  .lvd-native-checkout .wc-block-checkout__main,.lvd-native-checkout .wc-block-checkout__sidebar,
  .lvd-native-checkout form.checkout) { z-index:3; }
.lvd-portal .lvd-native-cart:not(:has(.woocommerce-cart-form)) .woocommerce { z-index:3; }
.lvd-portal .lvd-native-checkout .wc-block-checkout__sidebar { margin-top:0!important; }
.lvd-portal .lvd-native-checkout .wc-block-components-product-name { font:600 14px/1.5 system-ui,sans-serif!important;color:var(--lvd-text);text-decoration:none; }
.lvd-portal .lvd-native-checkout .wc-block-components-order-summary__content { border:0; }

.lvd-portal .lvd-store-products ul.products { display:grid;grid-template-columns:repeat(3,minmax(0,1fr));margin:24px 0;padding:0; }
.lvd-portal .lvd-store-products ul.products:before,.lvd-portal .lvd-store-products ul.products:after { display:none; }
.lvd-portal .lvd-store-products ul.products.columns-1 { grid-template-columns:1fr; }
.lvd-portal .lvd-store-products ul.products.columns-2 { grid-template-columns:repeat(2,minmax(0,1fr)); }
.lvd-portal .lvd-store-products ul.products.columns-4 { grid-template-columns:repeat(4,minmax(0,1fr)); }
@media(max-width:1000px) { .lvd-portal .lvd-store-products ul.products.columns-4 { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media(max-width:600px) { .lvd-portal .lvd-store-products ul.products { grid-template-columns:1fr!important; } }
