/* ==========================================================================
   Vinperia — WooCommerce
   ========================================================================== */

/* ---------- Notices ---------- */
.woocommerce-notices-wrapper, .woocommerce-message, .woocommerce-info, .woocommerce-error {
  max-width: 1280px; margin-inline: auto;
}
.woocommerce-message::before, .woocommerce-info::before, .woocommerce-error::before,
.woocommerce-message li::before, .woocommerce-info li::before, .woocommerce-error li::before,
.woocommerce-notice::before, .wc-block-components-notice-banner__content::before {
  content: none !important; display: none !important;
}
.woocommerce-message, .woocommerce-info, .woocommerce-error, ul.woocommerce-error {
  list-style: none; margin: 0 0 28px; padding: 18px 22px;
  border: 1px solid var(--vp-gold-line); border-left-width: 2px; border-radius: var(--vp-radius-sm);
  background: rgba(216,176,106,.06);
  font-size: 15px; line-height: 1.7; color: var(--vp-text-soft);
  display: flex; align-items: center; justify-content: space-between; gap: 20px; flex-wrap: wrap;
}
.woocommerce-message { border-color: var(--vp-teal-line); background: rgba(122,198,190,.06); }
.woocommerce-error   { border-color: rgba(224,128,111,.4); background: rgba(224,128,111,.06); }
.woocommerce-message .button, .woocommerce-info .button {
  background: transparent; border: 1px solid var(--vp-gold-line); color: var(--vp-gold);
  padding: 11px 20px; border-radius: var(--vp-radius-sm);
  font: 500 10px/1 var(--vp-mono); letter-spacing: .2em; text-transform: uppercase;
}
.woocommerce-message .button:hover { background: var(--vp-gold); color: var(--vp-ink); }

/* ---------- Buttons (Woo defaults mapped onto our button) ---------- */
.woocommerce a.button, .woocommerce button.button, .woocommerce input.button,
.woocommerce #respond input#submit, .wc-block-components-button, .wp-element-button {
  display: inline-flex; align-items: center; justify-content: center; gap: 10px;
  background: var(--vp-gold); color: var(--vp-ink); border: 1px solid var(--vp-gold);
  padding: 16px 30px; border-radius: var(--vp-radius-sm); cursor: pointer;
  font: 500 11px/1 var(--vp-mono); letter-spacing: .2em; text-transform: uppercase;
  transition: background-color .15s ease, color .15s ease, border-color .15s ease;
  text-decoration: none;
}
.woocommerce a.button:hover, .woocommerce button.button:hover, .woocommerce input.button:hover,
.woocommerce #respond input#submit:hover, .wc-block-components-button:hover,
.woocommerce a.button:focus, .woocommerce button.button:focus, .woocommerce input.button:focus,
.wp-element-button:hover, .wp-element-button:focus,
.woocommerce-checkout #payment #place_order:hover,
.woocommerce-checkout #payment #place_order:focus,
.wc-block-components-button:not([disabled]):hover,
.wc-block-components-button:not([disabled]):focus,
.woocommerce a.button.alt:hover, .woocommerce button.button.alt:hover, .woocommerce input.button.alt:hover {
  background: var(--vp-gold-lt) !important;
  border-color: var(--vp-gold-lt) !important;
  color: var(--vp-ink) !important;
  box-shadow: none !important;
}

/* WooCommerce 8+ ships --wc-primary as a purple and paints form fields white
   through --wc-form-color-background; pin the whole palette to ours. */
:root, .woocommerce, .wc-block-components-button {
  --wc-form-color-background: rgba(239, 232, 221, .04);
  --wc-form-color-background-disabled: rgba(239, 232, 221, .02);
  --wc-form-color-text: #cfc6b9;
  --wc-form-color-placeholder: #55504a;
  --wc-form-border-color: rgba(239, 232, 221, .16);
  --wc-form-color-focus: #7ac6be;
  --wc-primary: #d8b06a;
  --wc-primary-text: #0a0a0e;
  --wc-secondary: #0a0a0f;
  --wc-secondary-text: #efe8dd;
  --wc-highlight: #f0d9a8;
  --wc-content-bg: #06060a;
}
.woocommerce a.button.alt, .woocommerce button.button.alt, .woocommerce input.button.alt { background: var(--vp-gold); color: var(--vp-ink); }
.woocommerce .button.wc-backward, .woocommerce a.button.vp-btn--ghost {
  background: transparent; color: var(--vp-gold); border-color: var(--vp-gold-line);
}
.woocommerce .button.wc-backward:hover { background: var(--vp-gold); color: var(--vp-ink); }
.woocommerce button.button:disabled, .woocommerce button.button.disabled { opacity: .45; }
.woocommerce .button.loading { opacity: .65; position: relative; }
.woocommerce .button.loading::after {
  content: ""; width: 12px; height: 12px; border: 1px solid currentColor; border-top-color: transparent;
  border-radius: 50%; animation: vp-spin .8s linear infinite; display: inline-block;
}
.woocommerce .added_to_cart { display: none; }

/* ---------- Product grid (shop / archives / related / upsells) ---------- */
.woocommerce ul.products, ul.products {
  list-style: none; margin: 0; padding: 0;
  display: grid;
  /* Capped track: with two bottles the cards would otherwise stretch to half the
     page and push the price and button below the fold. */
  grid-template-columns: repeat(auto-fill, minmax(250px, 340px));
  justify-content: start;
  gap: 28px;
}
.vp-shop-grid--pair ul.products { max-width: 900px; }
.woocommerce ul.products::before, .woocommerce ul.products::after { content: none; }
/* WooCommerce ships .columns-N width rules whose specificity beats a plain
   `ul.products li.product`; they must not fight the grid. */
.woocommerce ul.products li.product,
.woocommerce-page ul.products li.product,
.woocommerce.columns-1 ul.products li.product,
.woocommerce.columns-2 ul.products li.product,
.woocommerce.columns-3 ul.products li.product,
.woocommerce.columns-4 ul.products li.product,
.woocommerce.columns-5 ul.products li.product,
.woocommerce.columns-6 ul.products li.product,
.woocommerce ul.products.columns-1 li.product,
.woocommerce ul.products.columns-2 li.product,
.woocommerce ul.products.columns-3 li.product,
.woocommerce ul.products.columns-4 li.product,
.woocommerce ul.products.columns-5 li.product,
.woocommerce ul.products.columns-6 li.product {
  width: auto !important;
  float: none !important;
  margin: 0 !important;
  clear: none !important;
}

.woocommerce ul.products li.product {
  margin: 0; padding: 0; width: auto; float: none; text-align: left;
  border: 1px solid var(--vp-line); border-radius: var(--vp-radius); background: var(--vp-card-bg);
  display: flex; flex-direction: column; overflow: hidden;
  transition: border-color .18s ease;
}
.woocommerce ul.products li.product:hover { border-color: rgba(216,176,106,.42); }
.woocommerce ul.products li.product a.woocommerce-LoopProduct-link {
  display: flex; flex-direction: column; flex: 1; color: var(--vp-text);
}
.vp-loop-media { position: relative; aspect-ratio: 1 / 1; background: var(--vp-bg-2); overflow: hidden; }
.vp-loop-media img { width: 100%; height: 100%; object-fit: cover; margin: 0; }
.vp-loop-body { padding: 22px 22px 20px; display: flex; flex-direction: column; gap: 10px; flex: 1; }
.woocommerce ul.products li.product .woocommerce-loop-product__title {
  font-family: var(--vp-serif); font-weight: 500; font-size: 22px; line-height: 1.25; margin: 0; padding: 0; color: var(--vp-text);
}
.vp-loop-meta { font: 400 10px/1.6 var(--vp-mono); letter-spacing: .18em; text-transform: uppercase; color: var(--vp-teal); }
.vp-loop-excerpt { margin: 0; color: var(--vp-muted-2); font-size: 14px; line-height: 1.65; flex: 1; }
.vp-loop-foot {
  display: flex; align-items: center; justify-content: space-between; gap: 16px;
  padding: 0 26px 28px; margin-top: auto;
}
.vp-loop-foot--ruled { padding-top: 14px; border-top: 1px solid rgba(239,232,221,.09); margin: 0 22px 22px; }
.woocommerce ul.products li.product .price {
  font-family: var(--vp-serif); font-size: 21px; color: var(--vp-gold); margin: 0; display: block;
}
.woocommerce ul.products li.product .price del { opacity: .5; font-size: .8em; margin-right: 8px; }
.woocommerce ul.products li.product .price ins { text-decoration: none; }
.woocommerce ul.products li.product .button, .vp-loop-foot .button {
  background: transparent; border: 1px solid var(--vp-gold-line); color: var(--vp-gold);
  padding: 11px 20px; font-size: 11px; letter-spacing: .2em; margin: 0;
}
.woocommerce ul.products li.product .button:hover { background: var(--vp-gold); color: var(--vp-ink); border-color: var(--vp-gold); }
.woocommerce span.onsale, .woocommerce ul.products li.product .onsale {
  position: absolute; top: 16px; right: 16px; left: auto; z-index: 3; margin: 0; min-width: 0; min-height: 0; line-height: 1;
  background: var(--vp-gold); color: var(--vp-ink); border-radius: var(--vp-radius-sm); padding: 6px 10px;
  font: 500 10px/1 var(--vp-mono); letter-spacing: .2em; text-transform: uppercase;
}
.woocommerce ul.products li.product .star-rating { margin: 0; color: var(--vp-gold); font-size: 12px; }

/* The shop header eats a lot of height before the first card; trim it so the
   price and button clear the fold on a normal laptop. */
.woocommerce-shop .vp-pagetop,
.tax-product_cat .vp-pagetop,
.tax-vp_house .vp-pagetop { padding-top: 150px; }
.woocommerce-shop .vp-section--tight,
.tax-product_cat .vp-section--tight { padding-top: 40px; }

/* Shop header bar */
.vp-shop-bar {
  display: flex; align-items: center; justify-content: space-between; gap: 24px; flex-wrap: wrap;
  margin-bottom: 24px; padding-bottom: 16px; border-bottom: 1px solid var(--vp-line);
}
.woocommerce .woocommerce-result-count {
  margin: 0; font: 400 10px/1.6 var(--vp-mono); letter-spacing: .22em; text-transform: uppercase; color: var(--vp-dim);
}
.woocommerce .woocommerce-ordering { margin: 0; }
.woocommerce .woocommerce-ordering select { padding: 11px 40px 11px 14px; font: 400 10px/1.4 var(--vp-mono); letter-spacing: .18em; text-transform: uppercase; }

/* ---------- Single product ---------- */
.vp-product { display: grid; grid-template-columns: repeat(auto-fit, minmax(340px, 1fr)); gap: 62px; align-items: start; }
.woocommerce div.product { margin: 0; }
.woocommerce div.product div.images, .woocommerce div.product div.summary { width: auto; float: none; margin: 0; }
.woocommerce div.product div.images img { border-radius: var(--vp-radius); }
.woocommerce div.product div.images .woocommerce-product-gallery__wrapper { border: 1px solid var(--vp-line); border-radius: var(--vp-radius); overflow: hidden; background: var(--vp-bg-2); }
.woocommerce div.product div.images .flex-control-thumbs { display: grid; grid-template-columns: repeat(4, 1fr); gap: 14px; margin: 14px 0 0; padding: 0; }
.woocommerce div.product div.images .flex-control-thumbs li { width: auto; float: none; margin: 0; }
.woocommerce div.product div.images .flex-control-thumbs img { border: 1px solid var(--vp-line); border-radius: var(--vp-radius-sm); opacity: .55; }
.woocommerce div.product div.images .flex-control-thumbs img.flex-active, .woocommerce div.product div.images .flex-control-thumbs img:hover { opacity: 1; border-color: rgba(216,176,106,.35); }
.woocommerce div.product .woocommerce-product-gallery__trigger { top: 16px; right: 16px; }

.vp-product__summary { display: flex; flex-direction: column; gap: 26px; }
.woocommerce div.product .product_title, .vp-product__title {
  font-family: var(--vp-serif); font-weight: 500; font-size: 52px; line-height: 1.08; margin: 0 0 18px;
}
.vp-product__short { color: var(--vp-muted); font-size: 18px; line-height: 1.75; }
.vp-product__short p { margin: 0 0 14px; }
.woocommerce div.product p.price, .woocommerce div.product span.price {
  font-family: var(--vp-serif); font-size: 34px; color: var(--vp-gold); margin: 0; line-height: 1;
}
.woocommerce div.product p.price del { opacity: .45; font-size: .6em; }
.woocommerce div.product p.price ins { text-decoration: none; }
.vp-product__pricerow { display: flex; align-items: baseline; gap: 18px; flex-wrap: wrap; }
.vp-product__pricenote { font: 400 10px/1.6 var(--vp-mono); letter-spacing: .2em; text-transform: uppercase; color: var(--vp-dim); }

.woocommerce div.product form.cart { display: flex; gap: 12px; flex-wrap: wrap; align-items: stretch; margin: 0; }
.woocommerce div.product form.cart .quantity { margin: 0; }
.woocommerce div.product form.cart .button {
  flex: 1; min-width: 220px; padding: 17px 30px; font-size: 12px; letter-spacing: .22em;
}
.woocommerce div.product form.cart.variations_form { flex-direction: column; }
.woocommerce div.product form.cart table.variations { width: 100%; margin-bottom: 20px; }
.woocommerce div.product form.cart table.variations td, .woocommerce div.product form.cart table.variations th { padding: 10px 0; border: 0; }
.woocommerce div.product form.cart .woocommerce-variation-add-to-cart { display: flex; gap: 12px; flex-wrap: wrap; }
.woocommerce div.product .stock { font: 400 10px/1.6 var(--vp-mono); letter-spacing: .2em; text-transform: uppercase; color: var(--vp-teal); margin: 0; }
.woocommerce div.product .out-of-stock { color: #e0806f; }
.woocommerce div.product .product_meta { font: 400 10px/2.2 var(--vp-mono); letter-spacing: .2em; text-transform: uppercase; color: var(--vp-dim); }
.woocommerce div.product .product_meta a { color: var(--vp-muted); }
.woocommerce div.product .woocommerce-product-rating { margin: 0; display: flex; align-items: center; gap: 14px; }
.woocommerce .star-rating span::before, .woocommerce .star-rating::before { color: var(--vp-gold); }

/* Attribute / spec rows on single product */
.vp-specs { display: grid; gap: 1px; background: var(--vp-line); margin-top: 6px; }
.vp-specs > div { background: var(--vp-bg); display: flex; justify-content: space-between; gap: 24px; padding: 16px 2px; }
.vp-specs dt, .vp-specs .vp-specs__k { font: 400 10px/1.6 var(--vp-mono); letter-spacing: .2em; text-transform: uppercase; color: var(--vp-dim); margin: 0; }
.vp-specs dd, .vp-specs .vp-specs__v { font-family: var(--vp-serif); font-size: 16px; margin: 0; text-align: right; }

/* Tabs / description */
.woocommerce div.product .woocommerce-tabs { margin-top: 110px; }
.woocommerce div.product .woocommerce-tabs ul.tabs {
  list-style: none; margin: 0 0 40px; padding: 0 0 0 0; display: flex; gap: 30px; flex-wrap: wrap;
  border-bottom: 1px solid var(--vp-line);
}
.woocommerce div.product .woocommerce-tabs ul.tabs::before, .woocommerce div.product .woocommerce-tabs ul.tabs li::before,
.woocommerce div.product .woocommerce-tabs ul.tabs li::after { content: none; display: none; }
/* WooCommerce paints li.active white with one more class than a plain li, so
   the reset has to name the state too or the active tab shows as a white block. */
.woocommerce div.product .woocommerce-tabs ul.tabs li,
.woocommerce div.product .woocommerce-tabs ul.tabs li.active,
.woocommerce div.product .woocommerce-tabs ul.tabs li:hover {
  background: none; border: 0; border-radius: 0; margin: 0; padding: 0; box-shadow: none;
}
.woocommerce div.product .woocommerce-tabs ul.tabs li a {
  padding: 0 0 16px; display: block; color: var(--vp-dim);
  font: 400 11px/1 var(--vp-mono); letter-spacing: .24em; text-transform: uppercase;
  border-bottom: 1px solid transparent; margin-bottom: -1px;
}
.woocommerce div.product .woocommerce-tabs ul.tabs li.active a, .woocommerce div.product .woocommerce-tabs ul.tabs li a:hover { color: var(--vp-gold); border-bottom-color: var(--vp-gold); }
.woocommerce div.product .woocommerce-tabs .panel { max-width: 760px; color: var(--vp-muted-2); font-size: 16px; line-height: 1.85; }
.woocommerce div.product .woocommerce-tabs .panel h2 { font-size: 28px; margin-bottom: 20px; }
.woocommerce table.shop_attributes th { width: 200px; }
.woocommerce table.shop_attributes td { font-family: var(--vp-serif); font-size: 16px; font-style: normal; }

.woocommerce #reviews #comments ol.commentlist { list-style: none; padding: 0; margin: 0; }
.woocommerce #reviews #comments ol.commentlist li { margin-bottom: 28px; }
.woocommerce #reviews #comments ol.commentlist li .comment-text { border: 1px solid var(--vp-line); border-radius: var(--vp-radius); padding: 26px; margin-left: 76px; }
.woocommerce #reviews #comments ol.commentlist li img.avatar { width: 52px; border: 0; border-radius: 50%; padding: 0; background: none; }
.woocommerce #review_form #respond textarea { min-height: 140px; }
.woocommerce p.stars a { color: var(--vp-gold); }

.woocommerce .related > h2, .woocommerce .upsells > h2, .woocommerce section.related h2, .woocommerce section.up-sells h2 {
  font-family: var(--vp-serif); font-weight: 500; font-size: 34px; margin: 0 0 36px;
}
.woocommerce .related, .woocommerce .upsells { margin-top: 110px; }

/* ---------- Cart ---------- */
.vp-cart { display: grid; grid-template-columns: minmax(0, 1fr) 420px; gap: 56px; align-items: start; }
.woocommerce table.shop_table {
  border: 0; border-radius: 0; margin: 0; width: 100%; border-collapse: collapse;
}
.woocommerce table.shop_table th {
  border: 0; border-bottom: 1px solid var(--vp-line); padding: 0 0 18px;
  font: 400 10px/1.6 var(--vp-mono); letter-spacing: .22em; text-transform: uppercase; color: var(--vp-dim);
}
.woocommerce table.shop_table td {
  border: 0; border-bottom: 1px solid var(--vp-line-soft); padding: 24px 0; vertical-align: middle;
}
.woocommerce table.cart .product-thumbnail { width: 96px; }
.woocommerce table.cart img { width: 78px; height: 92px; object-fit: cover; border: 1px solid var(--vp-line); border-radius: var(--vp-radius-sm); }
.woocommerce table.cart td.product-name a { font-family: var(--vp-serif); font-size: 19px; color: var(--vp-text); }
.woocommerce table.cart td.product-name a:hover { color: var(--vp-gold); }
.woocommerce table.cart td.product-name .vp-cart-meta { display: block; margin-top: 6px; font: 400 10px/1.6 var(--vp-mono); letter-spacing: .2em; text-transform: uppercase; color: var(--vp-dim); }
.woocommerce table.cart td.product-price, .woocommerce table.cart td.product-subtotal { font-family: var(--vp-serif); font-size: 18px; color: var(--vp-gold); white-space: nowrap; }
.woocommerce table.cart td.product-remove { width: 40px; text-align: right; }
.woocommerce a.remove {
  color: var(--vp-dim) !important; font-size: 20px; line-height: 1; width: 26px; height: 26px;
  display: inline-flex; align-items: center; justify-content: center; border-radius: 50%;
}
.woocommerce a.remove:hover { color: var(--vp-gold) !important; background: rgba(216,176,106,.1); }
/* WooCommerce floats .cart_totals at width:48%, which in our narrow aside left
   the totals overflowing their own panel. The aside is already the column. */
.woocommerce .cart-collaterals, .woocommerce-page .cart-collaterals,
.woocommerce .cart-collaterals .cart_totals, .woocommerce-page .cart-collaterals .cart_totals {
  width: 100%; float: none;
}
.woocommerce .cart_totals table { width: 100%; }
.woocommerce table.cart td.actions { padding: 26px 0 0; border-bottom: 0; }
.vp-cart-actions { display: flex; justify-content: space-between; gap: 20px; flex-wrap: wrap; align-items: center; width: 100%; }
.woocommerce .coupon { display: flex; gap: 10px; flex-wrap: wrap; align-items: stretch; flex: 1 1 380px; }
.woocommerce .coupon input[type="text"] { flex: 1 1 240px; min-width: 220px; width: auto; padding: 14px 16px; font-size: 15px; }
.woocommerce .coupon .button {
  padding: 14px 24px; font-size: 10px; white-space: nowrap;
  background: transparent; color: var(--vp-gold); border-color: var(--vp-gold-line);
}
.woocommerce .coupon .button:hover { background: var(--vp-gold) !important; color: var(--vp-ink) !important; }

/* The update button is disabled until something changes; keep it legible. */
.woocommerce button[name="update_cart"],
.woocommerce button[name="update_cart"]:disabled,
.woocommerce button[name="update_cart"][disabled] {
  background: transparent !important;
  border: 1px solid var(--vp-line-str) !important;
  color: var(--vp-muted) !important;
  opacity: 1 !important;
}
.woocommerce button[name="update_cart"]:disabled { color: var(--vp-dim) !important; border-color: var(--vp-line) !important; cursor: default; }
.woocommerce button[name="update_cart"]:not(:disabled):hover {
  background: var(--vp-gold) !important; border-color: var(--vp-gold) !important; color: var(--vp-ink) !important;
}

.vp-cart-aside {
  border: 1px solid var(--vp-line); border-radius: var(--vp-radius); background: var(--vp-card-bg);
  padding: 34px 30px; position: sticky; top: 120px;
}
.woocommerce .cart_totals h2, .vp-cart-aside h2 { font-family: var(--vp-serif); font-size: 22px; margin: 0 0 22px; }
.woocommerce .cart_totals table.shop_table { border-collapse: collapse; }
/* The totals panel is narrow and the courier rows carry logos and long labels.
   Forcing individual cells to block confuses the table algorithm, so the whole
   table becomes flex rows instead: label and value side by side, shipping
   stacked full width. */
.woocommerce .cart_totals table.shop_table,
.woocommerce .cart_totals table.shop_table tbody { display: block; width: 100%; }
.woocommerce .cart_totals table.shop_table tr {
  display: flex; justify-content: space-between; align-items: baseline;
  gap: 20px; width: 100%; border-bottom: 1px solid var(--vp-line-soft);
}
.woocommerce .cart_totals table.shop_table th,
.woocommerce .cart_totals table.shop_table td {
  display: block; width: auto; border: 0; padding: 16px 0; font-size: 15px; color: var(--vp-muted);
}
.woocommerce .cart_totals table.shop_table td { text-align: right; flex: 1; }
.woocommerce .cart_totals table.shop_table th { flex: 0 0 auto; }

/* The total wraps its tax note; keep the pair on one baseline and let the row
   use the full width of the panel. */
.woocommerce .cart_totals tr.order-total { align-items: baseline; }
.woocommerce .cart_totals tr.order-total td { display: flex; flex-direction: column; align-items: flex-end; gap: 2px; }
.woocommerce .cart_totals .includes_tax,
.woocommerce .cart_totals small { display: block; white-space: nowrap; font-size: 12px; color: var(--vp-dim); }
.woocommerce .cart_totals .includes_tax .amount { font-size: 14px; }

.woocommerce .cart_totals tr.woocommerce-shipping-totals,
.woocommerce .cart_totals tr.shipping { flex-direction: column; align-items: stretch; gap: 4px; }
.woocommerce .cart_totals tr.woocommerce-shipping-totals th,
.woocommerce .cart_totals tr.shipping th { width: 100%; padding-bottom: 4px; }
.woocommerce .cart_totals tr.woocommerce-shipping-totals td,
.woocommerce .cart_totals tr.shipping td { width: 100%; text-align: left; padding-top: 0; }

.woocommerce ul#shipping_method { width: 100%; gap: 12px; }
.woocommerce ul#shipping_method li { display: flex; align-items: flex-start; gap: 10px; line-height: 1.6; }
.woocommerce ul#shipping_method li label { display: block; flex: 1; }
.woocommerce ul#shipping_method li img { max-height: 14px; width: auto; display: inline-block; vertical-align: -2px; margin-right: 4px; }
.woocommerce ul#shipping_method .amount { color: var(--vp-gold); white-space: nowrap; }
.woocommerce .cart_totals .woocommerce-shipping-destination,
.woocommerce .cart_totals .shipping-calculator-button { display: block; margin-top: 10px; }
.woocommerce .cart_totals .order-total { border-bottom: 0; }
.woocommerce .cart_totals .order-total td, .woocommerce .cart_totals .order-total th { border-bottom: 0; padding-top: 22px; }
.woocommerce .cart_totals .order-total .woocommerce-Price-amount { font-family: var(--vp-serif); font-size: 26px; color: var(--vp-gold); }
.woocommerce .wc-proceed-to-checkout { padding: 24px 0 0; }
.woocommerce .wc-proceed-to-checkout a.checkout-button { display: flex; width: 100%; padding: 17px; font-size: 12px; letter-spacing: .22em; }
.woocommerce .shipping-calculator-button { font: 400 10px/1.6 var(--vp-mono); letter-spacing: .2em; text-transform: uppercase; }
.woocommerce ul#shipping_method { list-style: none; padding: 0; margin: 0; display: flex; flex-direction: column; gap: 10px; }
.woocommerce ul#shipping_method li { display: flex; align-items: center; gap: 10px; font-size: 14px; }
.woocommerce .cart-collaterals { width: 100%; }
.woocommerce .cross-sells { margin-top: 90px; }

.vp-cart-empty { text-align: center; padding: 60px 0 20px; max-width: 560px; margin-inline: auto; }
.vp-cart-empty p { color: var(--vp-muted-2); font-size: 17px; line-height: 1.85; }

/* ---------- Checkout ---------- */
.vp-checkout { display: grid; grid-template-columns: minmax(0, 1fr) 420px; gap: 56px; align-items: start; }
.woocommerce form.checkout_coupon, .woocommerce form.login, .woocommerce form.register {
  border: 1px solid var(--vp-line); border-radius: var(--vp-radius); padding: 30px; margin: 0 0 28px; background: var(--vp-card-bg);
}
.woocommerce .col2-set, .woocommerce-page .col2-set { display: grid; grid-template-columns: minmax(0,1fr); gap: 40px; width: 100%; }
.woocommerce .col2-set .col-1, .woocommerce .col2-set .col-2 { width: auto; float: none; }
.woocommerce-billing-fields h3, .woocommerce-shipping-fields h3, .woocommerce-additional-fields h3, #order_review_heading {
  font-family: var(--vp-serif); font-weight: 500; font-size: 26px; margin: 0 0 24px; padding-top: 0;
}
.woocommerce form .form-row { padding: 0; margin: 0 0 20px; display: flex; flex-direction: column; gap: 10px; }
.woocommerce form .form-row label { font: 400 10px/1.6 var(--vp-mono); letter-spacing: .24em; text-transform: uppercase; color: var(--vp-dim); }
.woocommerce form .form-row label .required { color: var(--vp-gold); border: 0; text-decoration: none; }
.woocommerce form .form-row-first, .woocommerce form .form-row-last { width: 100%; float: none; }
.woocommerce-checkout .woocommerce form .form-row { }
@media (min-width: 641px) {
  .woocommerce form .form-row-first, .woocommerce form .form-row-last { width: calc(50% - 10px); display: inline-flex; vertical-align: top; }
  .woocommerce form .form-row-first { margin-right: 16px; }
}
.woocommerce form .form-row.woocommerce-invalid input { border-color: rgba(224,128,111,.6); }
.woocommerce form .form-row.woocommerce-validated input { border-color: var(--vp-teal-line); }
/* Their selector outranks a plain input[type], so match it head-on. */
.woocommerce form .form-row .input-text,
.woocommerce form .form-row input.input-text,
.woocommerce form .form-row select,
.woocommerce form .form-row textarea,
.woocommerce form.track_order .input-text,
.woocommerce-EditAccountForm input,
.woocommerce-address-fields input,
.woocommerce .select2-container .select2-selection--single {
  background: rgba(239, 232, 221, .04) !important;
  color: var(--vp-text-soft) !important;
  border: 1px solid rgba(239, 232, 221, .16) !important;
}
.woocommerce form .form-row .input-text:focus,
.woocommerce form .form-row select:focus,
.woocommerce form .form-row textarea:focus,
.woocommerce form.track_order .input-text:focus {
  border-color: var(--vp-teal) !important;
}
.woocommerce-input-wrapper { width: 100%; }
.select2-container--default .select2-selection--single { height: auto; border-radius: var(--vp-radius-sm); }
.select2-container--default .select2-selection--single .select2-selection__rendered { color: var(--vp-text); line-height: 1.5; padding: 0; }
.select2-container--default .select2-selection--single .select2-selection__arrow { top: 12px; right: 10px; }
.select2-dropdown { background: var(--vp-bg-2); border-color: var(--vp-line-str); color: var(--vp-text); }
.select2-container--default .select2-results__option--highlighted[aria-selected] { background: rgba(216,176,106,.18); color: var(--vp-gold-lt); }
.select2-container--default .select2-search--dropdown .select2-search__field { background: rgba(239,232,221,.04); border-color: var(--vp-line-str); color: var(--vp-text); }

.vp-checkout__aside {
  border: 1px solid var(--vp-line); border-radius: var(--vp-radius); background: var(--vp-card-bg);
  padding: 34px 30px; position: sticky; top: 120px;
}
.woocommerce-checkout-review-order-table { width: 100%; }
.woocommerce-checkout-review-order-table td, .woocommerce-checkout-review-order-table th { padding: 14px 0; font-size: 15px; }
.woocommerce-checkout-review-order-table .product-name { color: var(--vp-muted); font-family: var(--vp-body); }
.woocommerce-checkout-review-order-table .product-total, .woocommerce-checkout-review-order-table td { text-align: right; color: var(--vp-muted); }
.woocommerce-checkout-review-order-table .product-name { text-align: left; }
.woocommerce-checkout-review-order-table tfoot .order-total th, .woocommerce-checkout-review-order-table tfoot .order-total td { border-bottom: 0; padding-top: 20px; }
.woocommerce-checkout-review-order-table tfoot .order-total .woocommerce-Price-amount { font-family: var(--vp-serif); font-size: 26px; color: var(--vp-gold); }
.woocommerce-checkout #payment { background: transparent; border-radius: 0; }
.woocommerce-checkout #payment ul.payment_methods { list-style: none; margin: 0; padding: 22px 0; border-bottom: 1px solid var(--vp-line); }
.woocommerce-checkout #payment ul.payment_methods li { margin-bottom: 14px; }
.woocommerce-checkout #payment ul.payment_methods label { font-family: var(--vp-serif); font-size: 17px; letter-spacing: 0; text-transform: none; color: var(--vp-text); display: inline-flex; align-items: center; gap: 10px; }
.woocommerce-checkout #payment div.payment_box {
  background: rgba(239,232,221,.04); border-radius: var(--vp-radius-sm); color: var(--vp-muted-2); font-size: 14px; line-height: 1.75;
  margin: 12px 0 0; padding: 16px 18px;
}
.woocommerce-checkout #payment div.payment_box::before { display: none; }
.woocommerce-checkout #payment div.form-row { padding: 22px 0 0; }
.woocommerce-checkout #payment #place_order { width: 100%; padding: 18px; font-size: 12px; letter-spacing: .22em; }
.woocommerce-privacy-policy-text, .woocommerce-terms-and-conditions-wrapper { font-size: 13px; line-height: 1.7; color: var(--vp-dim); }
.woocommerce-terms-and-conditions-wrapper .form-row { flex-direction: row; align-items: flex-start; gap: 10px; }

/* Order received / thank you */
.woocommerce .woocommerce-order { max-width: 900px; }
.woocommerce ul.order_details {
  list-style: none; margin: 0 0 44px; padding: 0;
  display: grid; grid-template-columns: repeat(auto-fit, minmax(160px, 1fr)); gap: 1px; background: var(--vp-line);
  border: 1px solid var(--vp-line); border-radius: var(--vp-radius); overflow: hidden;
}
.woocommerce ul.order_details li {
  background: var(--vp-bg); padding: 24px; float: none; margin: 0; border: 0;
  font: 400 10px/1.8 var(--vp-mono); letter-spacing: .2em; text-transform: uppercase; color: var(--vp-dim);
}
.woocommerce ul.order_details li strong { display: block; margin-top: 8px; font-family: var(--vp-serif); font-size: 17px; letter-spacing: 0; text-transform: none; color: var(--vp-text); font-weight: 500; }
.woocommerce .woocommerce-order-details, .woocommerce .woocommerce-customer-details { margin-top: 48px; }
.woocommerce .woocommerce-order-details h2, .woocommerce .woocommerce-customer-details h2, .woocommerce-column__title {
  font-family: var(--vp-serif); font-weight: 500; font-size: 26px; margin: 0 0 22px;
}
.woocommerce .woocommerce-customer-details address {
  border: 1px solid var(--vp-line); border-radius: var(--vp-radius); padding: 26px; font-style: normal;
  color: var(--vp-muted); line-height: 1.9;
}

/* ---------- My account ---------- */
.vp-account { display: grid; grid-template-columns: 230px minmax(0, 1fr); gap: 56px; align-items: start; }
.woocommerce-MyAccount-navigation { position: sticky; top: 120px; }
.woocommerce-MyAccount-navigation ul { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 2px; }
.woocommerce-MyAccount-navigation li a {
  display: block; padding: 14px 18px; border-left: 2px solid rgba(239,232,221,.12); color: var(--vp-muted-3);
  font: 400 11px/1.4 var(--vp-mono); letter-spacing: .2em; text-transform: uppercase;
}
.woocommerce-MyAccount-navigation li.is-active a, .woocommerce-MyAccount-navigation li a:hover { color: var(--vp-text); border-left-color: var(--vp-gold); }
.woocommerce-MyAccount-navigation li--woocommerce-logout a { color: var(--vp-dim); margin-top: 22px; }
.woocommerce-MyAccount-content { min-width: 0; }
.woocommerce-MyAccount-content h2, .woocommerce-MyAccount-content h3 { font-family: var(--vp-serif); font-weight: 500; font-size: 32px; margin: 0 0 28px; }
.woocommerce-MyAccount-content p { color: var(--vp-muted-2); font-size: 16px; line-height: 1.85; }
.woocommerce-MyAccount-content mark { background: none; color: var(--vp-gold); }
/* Order summaries wrap the number, date and status in <mark>; without this the
   browser default paints them highlighter-yellow. */
.woocommerce mark, .woocommerce-page mark, .woocommerce-order mark, .entry-content mark {
  background: none; background-color: transparent; color: var(--vp-text);
  font-weight: 600; padding: 0;
}
.woocommerce table.my_account_orders td, .woocommerce table.my_account_orders th { padding: 20px 12px 20px 0; }
.woocommerce table.my_account_orders .woocommerce-orders-table__cell-order-number a { font-family: var(--vp-serif); font-size: 18px; color: var(--vp-text); }
.woocommerce table.my_account_orders .button { padding: 10px 16px; font-size: 10px; background: transparent; color: var(--vp-gold); border-color: var(--vp-gold-line); }
.woocommerce-EditAccountForm fieldset { border: 1px solid var(--vp-line); border-radius: var(--vp-radius); padding: 26px; margin: 32px 0; }
.woocommerce-EditAccountForm legend { font: 400 10px/1.6 var(--vp-mono); letter-spacing: .24em; text-transform: uppercase; color: var(--vp-dim); padding: 0 10px; }
.woocommerce-Addresses { display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: 24px; }
.woocommerce-Address { border: 1px solid var(--vp-line); border-radius: var(--vp-radius); padding: 28px; }
.woocommerce-Address-title { display: flex; align-items: baseline; justify-content: space-between; gap: 16px; margin-bottom: 14px; }
.woocommerce-Address-title h2, .woocommerce-Address-title h3 { font-size: 20px; margin: 0; }
.woocommerce-Address address { font-style: normal; color: var(--vp-muted); line-height: 1.9; }
.vp-account-login { display: grid; grid-template-columns: repeat(auto-fit, minmax(320px, 1fr)); gap: 40px; align-items: start; }
.vp-account-login .vp-card { padding: 40px 36px; }

/* Signing in is the common errand, so it leads; opening a ledger sits quieter
   beside it. */
.vp-login--primary {
  border-color: rgba(216, 176, 106, .34);
  background: linear-gradient(180deg, rgba(216, 176, 106, .07), rgba(239, 232, 221, 0));
  box-shadow: 0 18px 44px rgba(0, 0, 0, .35);
}
.vp-login--primary .vp-h3 { font-size: 32px; }
.vp-login--secondary {
  border-color: var(--vp-line);
  background: none;
}
.vp-login--secondary .vp-h3 { font-size: 25px; color: var(--vp-muted); }
.vp-login--secondary .vp-login__lead { color: var(--vp-dim); }
.vp-login--secondary button,
.vp-login--secondary .woocommerce-form-register__submit {
  background: transparent !important;
  border: 1px solid var(--vp-gold-line) !important;
  color: var(--vp-gold) !important;
}
.vp-login--secondary button:hover,
.vp-login--secondary .woocommerce-form-register__submit:hover {
  background: var(--vp-gold) !important;
  color: var(--vp-ink) !important;
  border-color: var(--vp-gold) !important;
}
.vp-login__lead { margin: -14px 0 26px; color: var(--vp-muted-2); font-size: 15px; line-height: 1.7; }

/* ---------- Mini cart (drawer) ---------- */
.vp-mini-cart .woocommerce-mini-cart, ul.woocommerce-mini-cart { list-style: none; margin: 0; padding: 0; }
.vp-mini-cart li.woocommerce-mini-cart-item {
  display: flex; gap: 16px; padding: 22px 0; border-bottom: 1px solid var(--vp-line-soft); position: relative;
}
.vp-mini-cart li.woocommerce-mini-cart-item img { width: 64px; height: 64px; object-fit: cover; flex-shrink: 0; border: 1px solid var(--vp-line); border-radius: var(--vp-radius-sm); }
.vp-mini-cart li.woocommerce-mini-cart-item > a:not(.remove) { font-family: var(--vp-serif); font-size: 17px; color: var(--vp-text); display: block; }
.vp-mini-cart .vp-mini-cart__body { flex: 1; display: flex; flex-direction: column; gap: 8px; min-width: 0; }
.vp-mini-cart .quantity, .vp-mini-cart .vp-mini-cart__qty { font: 400 12px/1 var(--vp-mono); color: var(--vp-muted-2); border: 0; padding: 0; }
.vp-mini-cart .vp-mini-cart__price { font: 400 12px/1 var(--vp-mono); color: var(--vp-muted-2); }
.vp-mini-cart a.remove { position: absolute; top: 20px; right: 0; }
.vp-mini-cart .woocommerce-mini-cart__total { display: none; }
.vp-mini-cart .woocommerce-mini-cart__buttons { display: none; }

/* ---------- Widgets / filters ---------- */
.widget_product_categories ul, .widget_layered_nav ul, .widget_product_tag_cloud { list-style: none; padding: 0; }
.woocommerce .widget_price_filter .ui-slider .ui-slider-range, .woocommerce .widget_price_filter .ui-slider .ui-slider-handle { background: var(--vp-gold); }
.woocommerce .widget_price_filter .price_slider_wrapper .ui-widget-content { background: rgba(239,232,221,.12); }
.woocommerce .widget_shopping_cart .total { border-top: 1px solid var(--vp-line); }

/* ---------- Blocks-based cart/checkout ---------- */
.wc-block-components-title, .wp-block-woocommerce-checkout h2, .wc-block-components-checkout-step__title {
  font-family: var(--vp-serif) !important; font-weight: 500 !important; color: var(--vp-text) !important;
}
.wc-block-components-text-input input, .wc-block-components-textarea, .wc-block-components-select__container {
  background: rgba(239,232,221,.04) !important; border-color: rgba(239,232,221,.16) !important; color: var(--vp-text) !important;
  border-radius: var(--vp-radius-sm) !important;
}
.wc-block-components-text-input label, .wc-block-components-checkout-step__description, .wc-block-components-totals-item__label {
  color: var(--vp-dim) !important;
}
.wc-block-components-product-name, .wc-block-cart-item__wrap a { color: var(--vp-text) !important; font-family: var(--vp-serif) !important; }
.wc-block-components-totals-item__value, .wc-block-formatted-money-amount { color: var(--vp-gold) !important; }
.wc-block-components-sidebar-layout .wc-block-components-sidebar {
  border: 1px solid var(--vp-line); border-radius: var(--vp-radius); background: var(--vp-card-bg); padding: 26px;
}
.wc-block-components-panel, .wc-block-cart-items { border-color: var(--vp-line) !important; }
table.wc-block-cart-items th, table.wc-block-cart-items td { border-color: var(--vp-line-soft) !important; }

/* ---------- Responsive ---------- */
@media (max-width: 1023px) {
  .vp-cart, .vp-checkout, .vp-account { grid-template-columns: minmax(0, 1fr); gap: 40px; }
  .vp-cart-aside, .vp-checkout__aside, .woocommerce-MyAccount-navigation { position: static; }
  .woocommerce div.product .product_title, .vp-product__title { font-size: 40px; }
  .woocommerce div.product .woocommerce-tabs, .woocommerce .related, .woocommerce .upsells { margin-top: 70px; }
  .woocommerce-MyAccount-navigation ul { flex-direction: row; flex-wrap: wrap; gap: 6px; }
  .woocommerce-MyAccount-navigation li a { border-left: 0; border-bottom: 2px solid rgba(239,232,221,.12); padding: 12px 14px; }
  .woocommerce-MyAccount-navigation li.is-active a { border-left: 0; border-bottom-color: var(--vp-gold); }
}
@media (max-width: 640px) {
  .woocommerce div.product .product_title, .vp-product__title { font-size: 32px; }
  .woocommerce ul.products { grid-template-columns: minmax(0, 1fr); }
  .woocommerce table.shop_table_responsive thead, .woocommerce table.cart thead { display: none; }
  .woocommerce table.shop_table_responsive tr, .woocommerce table.cart tr { display: block; border-bottom: 1px solid var(--vp-line); padding: 20px 0; position: relative; }
  .woocommerce table.shop_table_responsive td, .woocommerce table.cart td {
    display: flex; justify-content: space-between; align-items: center; gap: 16px; border: 0; padding: 8px 0; text-align: right;
  }
  .woocommerce table.shop_table_responsive td::before, .woocommerce table.cart td::before {
    content: attr(data-title); font: 400 10px/1.6 var(--vp-mono); letter-spacing: .2em; text-transform: uppercase; color: var(--vp-dim);
  }
  .woocommerce table.cart td.product-remove { position: absolute; top: 20px; right: 0; padding: 0; }
  .woocommerce table.cart td.product-remove::before { content: none; }
  .woocommerce table.cart td.product-thumbnail::before { content: none; }
  .woocommerce table.cart td.actions { display: block; }
  .vp-cart-actions { flex-direction: column; align-items: stretch; }
  /* The parent stacks on phones, so the coupon's flex-basis would become a
     380px *height*; pin it back to its content and let the field take the row. */
  .woocommerce .coupon { flex: 0 0 auto; width: 100%; flex-wrap: nowrap; gap: 8px; }
  /* woocommerce-smallscreen.css pins both children to width:48% with a higher
     specificity than ours, which is what made them square blocks. */
  .woocommerce .coupon input[type="text"] { flex: 1 1 auto; width: auto !important; min-width: 0; padding: 14px 12px; font-size: 14px; }
  .woocommerce .coupon .button { flex: 0 0 auto; width: auto !important; padding: 14px 14px; letter-spacing: .08em; }
  /* Cart totals already render the <th> label, so WooCommerce's responsive
     data-title prefix on the <td> duplicated every row on phones. */
  .woocommerce .cart_totals table.shop_table_responsive tr td::before,
  .woocommerce-page .cart_totals table.shop_table_responsive tr td::before { content: none !important; }
  .woocommerce div.product form.cart .button { min-width: 0; width: 100%; }
}

/* ==========================================================================
   Withdrawal / cancellation (Elallas Kezelo)
   The plugin writes its colours as inline styles — white panels with a light
   grey border — so on a dark page its own text came out white on white. Every
   rule here needs !important to reach past those attributes. The plugin's
   markup and logic are untouched; this is colour only.
   ========================================================================== */
.wejk-return-container {
  background: var(--vp-bg-2) !important;
  border: 1px solid var(--vp-line) !important;
  border-left: 2px solid var(--vp-gold) !important;
  border-radius: var(--vp-radius-sm);
  padding: 30px !important;
  margin-top: 44px !important;
  color: var(--vp-text-soft) !important;
}
.wejk-consumer-data, .wejk-product-list {
  background: rgba(239, 232, 221, .03) !important;
  border: 1px solid var(--vp-line) !important;
  border-radius: var(--vp-radius-sm);
  padding: 20px !important;
  color: var(--vp-text-soft) !important;
}
.wejk-return-container h3 {
  font-family: var(--vp-display); font-size: 26px; color: var(--vp-text);
  margin: 0 0 14px; letter-spacing: .01em;
}
.wejk-return-container h4 {
  font: 500 11px/1 var(--vp-mono); letter-spacing: .2em; text-transform: uppercase;
  color: var(--vp-gold); margin: 0 0 16px !important;
}
.wejk-return-container p, .wejk-return-container label, .wejk-return-container span {
  color: var(--vp-text-soft) !important;
}
.wejk-return-container a { color: var(--vp-gold); }
.wejk-return-container input[type="checkbox"] { accent-color: var(--vp-gold); width: 16px; height: 16px; }
.wejk-return-container .woocommerce-error,
.wejk-return-container .woocommerce-info {
  background: rgba(224, 128, 111, .08) !important;
  border: 1px solid rgba(224, 128, 111, .4) !important;
  border-left-width: 2px !important;
  color: var(--vp-text-soft) !important;
  border-radius: var(--vp-radius-sm);
}
.wejk-return-container .woocommerce-info {
  background: rgba(216, 176, 106, .06) !important;
  border-color: var(--vp-gold-line) !important;
}
.wejk-submit-btn, .wejk-return-container .button.alt {
  background: transparent !important; color: var(--vp-gold) !important;
  border: 1px solid var(--vp-gold-line) !important;
  border-radius: var(--vp-radius-sm) !important;
  padding: 15px 30px !important;
  font: 500 11px/1 var(--vp-mono) !important; letter-spacing: .2em !important;
  text-transform: uppercase !important; box-shadow: none !important;
}
.wejk-submit-btn:hover, .wejk-return-container .button.alt:hover {
  background: var(--vp-gold) !important; color: var(--vp-ink) !important;
}

/* The confirmation screen after a declaration is submitted. The plugin's own
   green reads as a success state, so it stays — only the washed-out body text
   the theme was tinting gets its contrast back. */
[style*="#d4edda"] { border-radius: var(--vp-radius-sm) !important; }
[style*="#d4edda"] h2 { color: #123f1c !important; font-family: var(--vp-display); }
[style*="#d4edda"] p, [style*="#d4edda"] div, [style*="#d4edda"] span {
  color: #1c5a2a !important;
}
[style*="#d4edda"] .button, [style*="#d4edda"] .button-primary {
  background: var(--vp-gold) !important; color: var(--vp-ink) !important;
  border: 1px solid var(--vp-gold) !important; border-radius: var(--vp-radius-sm) !important;
  padding: 15px 30px !important; text-shadow: none !important; box-shadow: none !important;
  font: 500 11px/1 var(--vp-mono) !important; letter-spacing: .2em !important; text-transform: uppercase !important;
}

/* --------------------------------------------------------------------------
   "Save payment information to my account" — the save-card checkbox
   -------------------------------------------------------------------------- */
/* WooCommerce writes style="width:auto" straight onto this input. With our
   appearance:none box that collapsed it into a full-width 18px sliver with no
   tick, and the row picked up the display face meant for field labels, so the
   sentence next to it read as a heading. */
.woocommerce input[type="checkbox"][style*="width"],
.woocommerce-page input[type="checkbox"][style*="width"],
.woocommerce-checkout input[type="checkbox"][style*="width"] {
  width: 18px !important; height: 18px !important;
  vertical-align: top !important; bottom: 0 !important;
}
.woocommerce-SavedPaymentMethods-saveNew {
  /* .form-row stacks label over field in column direction everywhere else on
     the checkout; this one row wants the box beside its sentence. */
  display: flex !important; flex-direction: row !important; align-items: flex-start;
  gap: 12px; flex-wrap: nowrap;
  margin: 20px 0 0 !important; padding: 0;
}
.woocommerce-SavedPaymentMethods-saveNew input[type="checkbox"] {
  /* The tick is an absolutely positioned ::after, so the box has to stay its
     own containing block — position:static sent the check to the corner of the
     payment panel instead. */
  flex: 0 0 18px; margin: 2px 0 0 !important;
  position: relative !important; bottom: 0 !important; top: 0 !important;
}
.woocommerce-SavedPaymentMethods-saveNew label {
  font-family: var(--vp-body) !important; font-size: 14px !important;
  line-height: 1.6 !important; letter-spacing: 0 !important; text-transform: none !important;
  font-weight: 400 !important; color: var(--vp-muted) !important;
  margin: 0 !important; padding: 0 !important; cursor: pointer;
  flex: 1 1 auto; width: auto !important; min-width: 0;
}

/* --------------------------------------------------------------------------
   Checkout consents (terms + obligation to pay)
   -------------------------------------------------------------------------- */
.vp-consents { margin: 26px 0 22px; display: flex; flex-direction: column; gap: 14px; }
.woocommerce .vp-consents .vp-consent,
.woocommerce-page .vp-consents .vp-consent {
  display: flex !important; flex-direction: row !important; align-items: flex-start;
  gap: 12px; flex-wrap: nowrap; margin: 0 !important; padding: 0;
}
.vp-consents .vp-consent input[type="checkbox"] {
  flex: 0 0 18px; width: 18px !important; height: 18px !important;
  margin: 2px 0 0 !important; position: relative !important; top: 0 !important; bottom: 0 !important;
}
.vp-consents .vp-consent label {
  flex: 1 1 auto; width: auto !important; min-width: 0; margin: 0 !important; padding: 0 !important;
  font-family: var(--vp-body) !important; font-size: 14px !important; line-height: 1.65 !important;
  letter-spacing: 0 !important; text-transform: none !important; font-weight: 400 !important;
  color: var(--vp-muted) !important; cursor: pointer;
}
.vp-consents .vp-consent label a {
  color: var(--vp-gold); text-decoration: underline; text-underline-offset: 3px;
}
.vp-consents .vp-consent label a:hover { color: var(--vp-text); }
.vp-consents .vp-consent label abbr.required {
  border: 0; text-decoration: none; color: var(--vp-gold); margin-left: 2px;
}

/* WooCommerce's own checkbox labels — "Create an account?", "Ship to a
   different address?" — wrap the box and its text in one <label>, so give them
   the same row layout the consents use.
   The selectors have to be this long-winded: WooCommerce sets
   `.woocommerce form .form-row .input-checkbox { display: inline }`, and an
   inline box with appearance:none ignores width, which flattened the box to a
   2px sliver with the tick spilling onto the text beside it. */
.woocommerce form .form-row .input-checkbox,
.woocommerce form .form-row input[type="checkbox"],
.woocommerce form .form-row input[type="radio"],
.woocommerce-page form .form-row .input-checkbox,
.woocommerce-page form .form-row input[type="checkbox"] {
  display: inline-block; width: 18px; height: 18px; margin: 0;
}
.woocommerce .woocommerce-form__label-for-checkbox,
.woocommerce-page .woocommerce-form__label-for-checkbox,
.woocommerce form .form-row label.woocommerce-form__label-for-checkbox,
.woocommerce-page form .form-row label.woocommerce-form__label-for-checkbox {
  display: flex; flex-direction: row; align-items: center; gap: 10px;
  width: 100%; margin: 0;
}
.woocommerce .woocommerce-form__label-for-checkbox input[type="checkbox"],
.woocommerce-page .woocommerce-form__label-for-checkbox input[type="checkbox"],
.woocommerce form .form-row label.woocommerce-form__label-for-checkbox input[type="checkbox"] {
  flex: 0 0 18px; margin: 0 !important; vertical-align: baseline;
}
.woocommerce .woocommerce-form__label-for-checkbox span,
.woocommerce-page .woocommerce-form__label-for-checkbox span { flex: 1 1 auto; min-width: 0; }
