/* WooCommerce styling for the Vintage Verdict shop section.
   Mirrors the theme design system: paper/cream palette, 3px ink borders,
   hard offset shadows, Archivo display type. Loaded only on shop pages
   (see functions.php conditional enqueue). */

.vv-shop-section { background: var(--vv-cream); }

/* ============ SHOP HERO ============ */
.vv-shop-hero {
  padding: 24px 40px 18px;
  border-bottom: 3px solid var(--vv-ink);
  background: var(--vv-cream);
}
.vv-shop-hero__inner {
  max-width: 1100px;
  margin: 0 auto;
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 36px;
  align-items: center;
}
.vv-shop-hero__title {
  font-family: var(--vv-display);
  font-size: 42px;
  line-height: 1.03;
  letter-spacing: -0.8px;
  margin: 0 0 12px;
  max-width: 700px;
}
.vv-shop-hero__intro {
  font-size: 15.5px;
  line-height: 1.55;
  margin: 0 0 16px;
  opacity: .8;
}
.vv-shop-hero__meta {
  font-family: var(--vv-mono);
  font-size: 11px;
  letter-spacing: 1.6px;
  opacity: .6;
  display: flex;
  gap: 10px;
  flex-wrap: wrap;
}
.vv-shop-hero__dot { opacity: .5; }

/* Rotated sale flag */
.vv-shop-flag {
  transform: rotate(-2.5deg);
  border: 3px solid var(--vv-ink);
  background: var(--vv-cream);
  box-shadow: 9px 9px 0 var(--vv-ink);
  width: 260px;
  max-width: 100%;
  justify-self: start;
}
.vv-shop-flag__head {
  background: var(--vv-ink);
  color: var(--vv-gold);
  font-family: var(--vv-mono);
  font-size: 10px;
  letter-spacing: 2.6px;
  text-align: center;
  padding: 6px 6px 5px;
}
.vv-shop-flag__body {
  padding: 12px 14px 14px;
  text-align: center;
  background: repeating-linear-gradient(-45deg, #33695C 0 15px, #2D5B50 15px 30px);
}
.vv-shop-flag__stars {
  font-family: var(--vv-mono);
  font-size: 13px;
  letter-spacing: 6px;
  color: var(--vv-gold);
  margin-bottom: 6px;
}
.vv-shop-flag__stars--wide { font-size: 11px; letter-spacing: 5px; margin: 7px 0 0; }
.vv-shop-flag__word { font-family: var(--vv-display); }
.vv-shop-flag__word--1 { font-size: 40px; line-height: .88; letter-spacing: -1px; color: var(--vv-cream); }
.vv-shop-flag__word--2 { font-size: 27px; line-height: .95; letter-spacing: -0.5px; color: var(--vv-orange); }
.vv-shop-flag__word--3 { font-size: 18px; line-height: 1; color: var(--vv-cream); }

/* ============ CATEGORY CHIPS ============ */
.vv-shop-grid-section { padding: 34px 40px 80px; }
.vv-shop-chips { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; margin-bottom: 30px; }
.vv-shop-chip {
  font-family: var(--vv-mono);
  font-size: 12px;
  letter-spacing: 1.5px;
  padding: 9px 16px;
  border: 3px solid var(--vv-ink);
  background: var(--vv-paper);
  color: var(--vv-ink);
  text-decoration: none;
}
.vv-shop-chip:hover { border-color: var(--vv-orange); color: var(--vv-ink); }
.vv-shop-chip.is-on { background: var(--vv-ink); color: var(--vv-cream); }

/* ============ PRODUCT GRID ============ */
.vv-shop-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(290px, 1fr));
  gap: 28px;
}
.vv-shop-card {
  border: 3px solid var(--vv-ink);
  background: var(--vv-paper);
  box-shadow: 6px 6px 0 var(--vv-ink);
  display: flex;
  flex-direction: column;
  text-decoration: none;
  color: var(--vv-ink);
  transition: transform .08s ease, box-shadow .08s ease;
}
.vv-shop-card:hover {
  color: var(--vv-ink);
  transform: translate(3px, 3px);
  box-shadow: 3px 3px 0 var(--vv-orange);
}
.vv-shop-card__media {
  height: 240px;
  border-bottom: 3px solid var(--vv-ink);
  background: var(--vv-cream);
  overflow: hidden;
}
.vv-shop-card__img { display: block; width: 100%; object-fit: cover; }
.vv-shop-card__body { padding: 18px 18px 20px; display: flex; flex-direction: column; gap: 8px; flex: 1; }
.vv-shop-card__kicker { font-family: var(--vv-mono); font-size: 10.5px; letter-spacing: 1.6px; opacity: .6; }
.vv-shop-card__name { font-family: var(--vv-display); font-size: 19px; line-height: 1.15; }
.vv-shop-card__blurb { font-size: 13.5px; line-height: 1.45; flex: 1; margin: 0; }
.vv-shop-card__foot { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; margin-top: 4px; }
.vv-shop-card__price { font-family: var(--vv-mono); font-size: 16px; font-weight: 700; }
.vv-shop-card__price del { opacity: .5; font-weight: 400; margin-right: 6px; }
.vv-shop-card__cta { font-family: var(--vv-display); font-size: 13px; color: var(--vv-orange); }

/* Image slot placeholder, used until Printify supplies the mockups */
.vv-shop-slot {
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  background: var(--vv-cream);
  border: 2px dashed #B7AD98;
}
.vv-shop-slot span {
  font-family: var(--vv-mono);
  font-size: 10.5px;
  letter-spacing: 1.6px;
  opacity: .55;
  text-align: center;
  padding: 0 10px;
}

/* Pagination, once the catalog runs past one page */
.vv-shop-grid-section .woocommerce-pagination { margin-top: 40px; }
.vv-shop-grid-section .woocommerce-pagination ul.page-numbers {
  display: flex;
  gap: 10px;
  flex-wrap: wrap;
  justify-content: flex-start;
  list-style: none;
  margin: 0;
  padding: 0;
  border: 0;
}
.vv-shop-grid-section .woocommerce-pagination ul.page-numbers li { border: 0; margin: 0; overflow: visible; }
.vv-shop-grid-section .woocommerce-pagination .page-numbers {
  display: block;
  min-width: 44px;
  padding: 10px 14px;
  border: 3px solid var(--vv-ink);
  background: var(--vv-paper);
  color: var(--vv-ink);
  font-family: var(--vv-mono);
  font-size: 13px;
  text-align: center;
  text-decoration: none;
}
.vv-shop-grid-section .woocommerce-pagination a.page-numbers:hover {
  border-color: var(--vv-orange);
  background: var(--vv-paper);
  color: var(--vv-ink);
}
.vv-shop-grid-section .woocommerce-pagination .page-numbers.current {
  background: var(--vv-ink);
  color: var(--vv-cream);
}

.vv-shop-empty { border: 3px dashed #B7AD98; padding: 40px 28px; max-width: 620px; }
.vv-shop-empty__title { font-family: var(--vv-display); font-size: 20px; margin-bottom: 10px; }
.vv-shop-empty p { font-size: 15px; line-height: 1.55; margin: 0 0 16px; }
.vv-shop-empty__link { font-family: var(--vv-display); font-size: 14px; }

/* ============ SINGLE PRODUCT ============ */
.vv-shop-crumbs {
  padding: 16px 40px;
  border-bottom: 3px solid var(--vv-ink);
  background: var(--vv-paper);
  font-family: var(--vv-mono);
  font-size: 11.5px;
  letter-spacing: 1.5px;
}
.vv-shop-crumbs .vv-container { display: flex; align-items: center; gap: 14px; }
.vv-shop-crumbs__back { color: var(--vv-orange); font-weight: 700; text-decoration: none; }
.vv-shop-crumbs__back:hover { color: var(--vv-orange-dark); }
.vv-shop-crumbs__cat { opacity: .45; }

.vv-shop-single { padding: 48px 40px 72px; }
.vv-shop-single__grid { display: grid; grid-template-columns: 1.05fr 1fr; gap: 48px; align-items: start; }
.vv-shop-gallery { display: flex; flex-direction: column; gap: 14px; }
.vv-shop-gallery__main {
  border: 3px solid var(--vv-ink);
  background: var(--vv-paper);
  box-shadow: 8px 8px 0 var(--vv-ink);
  height: 440px;
  overflow: hidden;
}
.vv-shop-gallery__main .vv-shop-card__img,
.vv-shop-gallery__main .vv-shop-slot { height: 440px; }
.vv-shop-gallery__thumbs { display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px; }
.vv-shop-gallery__thumb { border: 3px solid var(--vv-ink); background: var(--vv-paper); height: 120px; overflow: hidden; }

.vv-shop-buy__kicker { font-family: var(--vv-mono); font-size: 11px; letter-spacing: 2px; opacity: .6; margin-bottom: 12px; }
.vv-shop-buy__title {
  font-family: var(--vv-display);
  font-size: 38px;
  line-height: 1.06;
  letter-spacing: -0.5px;
  margin: 0 0 14px;
}
.vv-shop-buy__price { font-family: var(--vv-mono); font-size: 24px; font-weight: 700; margin-bottom: 18px; }
.vv-shop-buy__price del { opacity: .5; font-weight: 400; margin-right: 8px; }
.vv-shop-buy__blurb { font-size: 15.5px; line-height: 1.6; margin: 0 0 10px; }
.vv-shop-buy__long { font-size: 14.5px; line-height: 1.6; margin: 0 0 26px; }
.vv-shop-buy__long p { margin: 0 0 10px; }

/* The seven report descriptions come from the Payhip kit, which carries its
   structure in the tags: h3 is the section bar, h3 + ul are the verdict rows,
   h3 + ol is the numbered how-it-works, blockquote is the signature placard.
   These rules are the theme's read of design/payhip/css/store-pages.css so the
   same copy reads the same way on both storefronts. */
.vv-shop-buy__long h3 {
  background: var(--vv-ink);
  color: var(--vv-cream);
  font-family: var(--vv-display);
  font-size: 13px;
  letter-spacing: 2px;
  text-transform: uppercase;
  padding: 10px 16px;
  margin: 24px 0 0;
}
.vv-shop-buy__long h3 + ul,
.vv-shop-buy__long h3 + ol {
  list-style: none;
  margin: 0 0 24px;
  padding: 0;
  border: 3px solid var(--vv-ink);
  border-top: 0;
  background: var(--vv-paper);
  counter-reset: vv-step;
}
.vv-shop-buy__long h3 + ul li,
.vv-shop-buy__long h3 + ol li {
  border-bottom: 2px solid var(--vv-ink);
  padding: 12px 16px;
  font-size: 14.5px;
  line-height: 1.5;
  list-style: none;
}
.vv-shop-buy__long h3 + ul li:last-child,
.vv-shop-buy__long h3 + ol li:last-child { border-bottom: 0; }
.vv-shop-buy__long h3 + ul li strong,
.vv-shop-buy__long h3 + ol li strong {
  display: block;
  font-family: var(--vv-mono);
  font-weight: 700;
  font-size: 11px;
  letter-spacing: 1px;
  text-transform: uppercase;
  margin-bottom: 4px;
}
.vv-shop-buy__long h3 + ol li::before {
  counter-increment: vv-step;
  content: "0" counter(vv-step);
  display: block;
  font-family: var(--vv-display);
  font-size: 22px;
  line-height: 1;
  color: var(--vv-orange);
  margin-bottom: 6px;
}
.vv-shop-buy__long h3 + ol li strong {
  font-family: var(--vv-display);
  font-size: 14px;
  letter-spacing: 0;
  text-transform: none;
}
.vv-shop-buy__long blockquote {
  border: 3px solid var(--vv-ink);
  background: var(--vv-gold);
  color: var(--vv-ink);
  padding: 18px 20px;
  margin: 24px 0;
  font-family: var(--vv-display);
  font-size: 16px;
  line-height: 1.15;
  text-transform: uppercase;
}
.vv-shop-buy__long blockquote em {
  display: block;
  font-family: var(--vv-mono);
  font-style: normal;
  font-size: 11px;
  letter-spacing: 1px;
  text-transform: none;
  margin-top: 6px;
}
.vv-shop-buy__long blockquote strong {
  display: inline-block;
  font-family: var(--vv-display);
  font-style: italic;
  font-size: 17px;
  text-transform: none;
  border-bottom: 3px solid var(--vv-ink);
  padding: 0 8px 3px;
  margin-top: 14px;
}
.vv-shop-buy__long p em {
  display: block;
  font-family: var(--vv-mono);
  font-style: normal;
  font-size: 12px;
  letter-spacing: .5px;
  line-height: 1.7;
  margin: 14px 0;
  padding: 12px 14px;
  border-left: 6px solid var(--vv-gold);
  background: var(--vv-paper);
  text-transform: uppercase;
}

.vv-shop-opt { margin-bottom: 22px; }
.vv-shop-opt__label { font-family: var(--vv-mono); font-size: 11px; letter-spacing: 2px; margin-bottom: 10px; }
.vv-shop-opt__chips { display: flex; gap: 8px; flex-wrap: wrap; }
.vv-shop-opt__chip {
  cursor: pointer;
  min-width: 52px;
  text-align: center;
  font-family: var(--vv-mono);
  font-size: 13px;
  padding: 10px 14px;
  border: 3px solid var(--vv-ink);
  background: var(--vv-paper);
  color: var(--vv-ink);
}
.vv-shop-opt__chip:hover { border-color: var(--vv-orange); }
.vv-shop-opt__chip.is-on { background: var(--vv-ink); color: var(--vv-cream); }

/* The three-step strip on report pages: pay, intake, verdict */
.vv-report-steps {
  list-style: none;
  counter-reset: vv-buy-step;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 0;
  margin: 0 0 18px;
  padding: 0;
  border: 3px solid var(--vv-ink);
  background: var(--vv-paper);
}
.vv-report-steps li {
  padding: 12px 14px 14px;
  border-right: 2px solid var(--vv-ink);
  font-size: 13px;
  line-height: 1.45;
}
.vv-report-steps li:last-child { border-right: 0; }
.vv-report-steps li::before {
  counter-increment: vv-buy-step;
  content: "0" counter(vv-buy-step);
  display: block;
  font-family: var(--vv-display);
  font-size: 20px;
  line-height: 1;
  color: var(--vv-orange);
  margin-bottom: 6px;
}
.vv-report-steps li strong {
  display: block;
  font-family: var(--vv-mono);
  font-size: 11px;
  letter-spacing: 1.6px;
  margin-bottom: 4px;
}
.vv-buy-direct { margin-bottom: 16px; }
.vv-buy-direct .vv-shop-buy__add { width: 100%; }
@media (max-width: 640px) {
  .vv-report-steps { grid-template-columns: 1fr; }
  .vv-report-steps li { border-right: 0; border-bottom: 2px solid var(--vv-ink); }
  .vv-report-steps li:last-child { border-bottom: 0; }
}

.vv-shop-buy__row { display: flex; align-items: stretch; gap: 12px; flex-wrap: wrap; margin-bottom: 16px; }
.vv-shop-buy__add {
  cursor: pointer;
  flex: 1;
  min-width: 200px;
  font-family: var(--vv-display);
  font-size: 15px;
  text-align: left;
  background: var(--vv-orange);
  color: var(--vv-cream);
  border: 3px solid var(--vv-ink);
  padding: 14px 20px;
  box-shadow: 5px 5px 0 var(--vv-ink);
  transition: transform .08s ease, box-shadow .08s ease;
}
.vv-shop-buy__add:hover { transform: translate(2px, 2px); box-shadow: 3px 3px 0 var(--vv-ink); }
.vv-shop-buy__add:active { transform: translate(5px, 5px); box-shadow: 0 0 0 var(--vv-ink); }
.vv-shop-buy__pod { font-family: var(--vv-mono); font-size: 11px; letter-spacing: 1.4px; opacity: .65; margin-bottom: 30px; }

.vv-shop-specs { border-top: 3px solid var(--vv-ink); margin: 0; }
.vv-shop-specs__row { display: flex; gap: 16px; padding: 11px 0; border-bottom: 2px solid #D9CFB6; }
.vv-shop-specs dt {
  font-family: var(--vv-mono);
  font-size: 11px;
  letter-spacing: 1.6px;
  width: 110px;
  flex: none;
  opacity: .6;
  padding-top: 2px;
}
.vv-shop-specs dd { font-size: 14.5px; line-height: 1.45; margin: 0; }

.vv-shop-why {
  margin-top: 26px;
  border: 3px solid var(--vv-ink);
  background: var(--vv-green);
  color: var(--vv-cream);
  padding: 18px 20px;
}
.vv-shop-why__head { font-family: var(--vv-mono); font-size: 11px; letter-spacing: 2px; color: var(--vv-gold); margin-bottom: 8px; }
.vv-shop-why p { font-size: 14px; line-height: 1.55; margin: 0; }

/* Pre-payment reminder above the checkout when a report is in the cart */
.vv-checkout-note {
  max-width: 780px;
  margin: 0 auto 28px;
  border: 3px solid var(--vv-ink);
  border-left-width: 10px;
  border-left-color: var(--vv-gold);
  background: var(--vv-paper);
  padding: 16px 20px;
}
.vv-checkout-note__head {
  font-family: var(--vv-mono);
  font-size: 11px;
  letter-spacing: 2px;
  margin-bottom: 8px;
}
.vv-checkout-note p { font-size: 14.5px; line-height: 1.55; margin: 0; }

/* ============ ORDER CONFIRMATION: NEXT STEP ============ */
.vv-order-next {
  border: 3px solid var(--vv-ink);
  background: var(--vv-green);
  color: var(--vv-cream);
  padding: 28px 30px;
  margin: 0 0 36px;
  box-shadow: 8px 8px 0 var(--vv-ink);
}
.vv-order-next__head {
  font-family: var(--vv-mono);
  font-size: 11px;
  letter-spacing: 2px;
  color: var(--vv-gold);
  margin-bottom: 10px;
}
.vv-order-next__title {
  font-family: var(--vv-display);
  font-size: 28px;
  line-height: 1.1;
  margin: 0 0 14px;
  color: var(--vv-cream);
}
.vv-order-next p { font-size: 15.5px; line-height: 1.6; margin: 0 0 14px; }
.vv-order-next__ref {
  font-family: var(--vv-mono);
  font-size: 12px;
  letter-spacing: 1.4px;
  color: var(--vv-gold);
}
.vv-order-next__btn {
  display: inline-block;
  font-family: var(--vv-display);
  font-size: 16px;
  background: var(--vv-gold);
  color: var(--vv-ink);
  border: 3px solid var(--vv-ink);
  padding: 14px 24px;
  text-decoration: none;
  box-shadow: 5px 5px 0 var(--vv-ink);
  transition: transform .08s ease, box-shadow .08s ease;
}
.vv-order-next__btn:hover {
  color: var(--vv-ink);
  transform: translate(2px, 2px);
  box-shadow: 3px 3px 0 var(--vv-ink);
}
.vv-order-next__note {
  font-family: var(--vv-mono);
  font-size: 11px;
  letter-spacing: 1.2px;
  opacity: .75;
  margin: 16px 0 0;
}

/* ============ BLOCK CART + CHECKOUT ============
   WooCommerce ships the cart and checkout as blocks with their own styling.
   These rules square the corners, restate the palette, and put the display
   face on headings and buttons so the pages match the rest of the site. */
.wc-block-components-title,
.wp-block-woocommerce-checkout-order-summary-block .wc-block-components-title,
.wc-block-cart__totals-title,
.wc-block-components-order-summary__button-text {
  font-family: var(--vv-display);
  color: var(--vv-ink);
  text-transform: none;
}
.wc-block-components-product-name { font-family: var(--vv-display); color: var(--vv-ink); }
.wc-block-components-product-metadata { font-family: var(--vv-mono); font-size: 12px; }
.wc-block-formatted-money-amount,
.wc-block-components-totals-item__value { font-family: var(--vv-mono); }

.wc-block-components-text-input input.input-text,
.wc-block-components-text-input input[type="text"],
.wc-block-components-text-input input[type="email"],
.wc-block-components-text-input input[type="tel"],
.wc-block-components-textarea,
.wc-blocks-components-select__select,
.wc-block-components-combobox-control input.components-combobox-control__input {
  border: 3px solid var(--vv-ink) !important;
  border-radius: 0 !important;
  background: #fff;
  color: var(--vv-ink);
  font-family: var(--vv-body);
  box-shadow: none;
}
.wc-block-components-text-input.is-active label,
.wc-block-components-text-input label { font-family: var(--vv-body); }

.wc-block-components-panel,
.wc-block-components-totals-wrapper,
.wp-block-woocommerce-checkout-order-summary-block,
.wc-block-cart__totals-title + .wc-block-components-totals-wrapper,
.wc-block-cart-items {
  border-radius: 0;
}
.wp-block-woocommerce-checkout-order-summary-block {
  border: 3px solid var(--vv-ink);
  background: var(--vv-paper);
}
.wc-block-components-checkout-place-order-button,
.wc-block-cart__submit-button,
.wc-block-components-button:not(.is-link) {
  font-family: var(--vv-display);
  border: 3px solid var(--vv-ink) !important;
  border-radius: 0 !important;
  background: var(--vv-orange);
  color: var(--vv-cream);
  box-shadow: 5px 5px 0 var(--vv-ink);
  transition: transform .08s ease, box-shadow .08s ease;
}
.wc-block-components-checkout-place-order-button:hover,
.wc-block-cart__submit-button:hover,
.wc-block-components-button:not(.is-link):hover {
  background: var(--vv-orange-dark);
  color: var(--vv-cream);
  transform: translate(2px, 2px);
  box-shadow: 3px 3px 0 var(--vv-ink);
}
.wc-block-components-notice-banner {
  border-radius: 0;
  border-width: 3px;
  font-family: var(--vv-body);
}
.wc-block-cart__empty-cart__title { font-family: var(--vv-display); }

@media (max-width: 900px) {
  .vv-shop-hero__inner { grid-template-columns: 1fr; }
  .vv-shop-flag { display: none; }
  .vv-shop-single__grid { grid-template-columns: 1fr; gap: 32px; }
}
@media (max-width: 820px) {
  .vv-shop-hero { padding: 20px 24px 16px; }
  .vv-shop-hero__title { font-size: 32px; }
  .vv-shop-grid-section { padding: 28px 24px 64px; }
  .vv-shop-crumbs { padding: 14px 24px; }
  .vv-shop-single { padding: 32px 24px 56px; }
  .vv-shop-buy__title { font-size: 30px; }
  .vv-shop-gallery__main,
  .vv-shop-gallery__main .vv-shop-card__img,
  .vv-shop-gallery__main .vv-shop-slot { height: 320px; }
}
.vv-shop-section .woocommerce-breadcrumb {
  font-family: var(--vv-mono);
  font-size: 13px;
  color: var(--vv-muted);
  margin-bottom: 28px;
}
.vv-shop-section .woocommerce-breadcrumb a { color: var(--vv-green); }

/* Result count + ordering row */
.vv-shop-section .woocommerce-result-count {
  font-family: var(--vv-mono);
  font-size: 13px;
  color: var(--vv-muted);
}
.vv-shop-section .woocommerce-ordering select {
  font-family: var(--vv-body);
  font-size: 14px;
  padding: 8px 12px;
  border: 3px solid var(--vv-ink);
  background: var(--vv-paper);
  color: var(--vv-ink);
}

/* Product grid cards */
.vv-shop-section ul.products li.product {
  border: 3px solid var(--vv-ink);
  background: var(--vv-paper);
  box-shadow: 5px 5px 0 var(--vv-ink);
  padding: 0 0 18px;
  text-align: center;
  transition: transform .08s ease, box-shadow .08s ease;
}
.vv-shop-section ul.products li.product:hover {
  transform: translate(2px, 2px);
  box-shadow: 3px 3px 0 var(--vv-ink);
}
.vv-shop-section ul.products li.product img {
  display: block;
  width: 100%;
  border-bottom: 3px solid var(--vv-ink);
  margin: 0 0 14px;
}
.vv-shop-section ul.products li.product .woocommerce-loop-product__title {
  font-family: var(--vv-display);
  font-size: 16px;
  color: var(--vv-ink);
  padding: 0 14px;
}
.vv-shop-section ul.products li.product .price {
  font-family: var(--vv-mono);
  font-size: 15px;
  color: var(--vv-green);
  display: block;
  margin: 8px 0 12px;
}

/* Sale / badge */
.vv-shop-section .onsale {
  font-family: var(--vv-display);
  font-size: 12px;
  text-transform: uppercase;
  background: var(--vv-gold);
  color: var(--vv-ink);
  border: 3px solid var(--vv-ink);
  border-radius: 0;
  padding: 4px 10px;
  min-height: 0;
  min-width: 0;
  line-height: normal;
}

/* Buttons: match .vv-btn--orange / --md */
.vv-shop-section .button,
.vv-shop-section button.button,
.vv-shop-section a.button,
.vv-shop-section .woocommerce-button,
.vv-shop-section button[type="submit"] {
  cursor: pointer;
  display: inline-block;
  font-family: var(--vv-display);
  font-size: 14px;
  padding: 12px 20px;
  border: 3px solid var(--vv-ink);
  border-radius: 0;
  background: var(--vv-orange);
  color: var(--vv-cream);
  text-decoration: none;
  text-align: center;
  line-height: normal;
  box-shadow: 5px 5px 0 var(--vv-ink);
  transition: transform .08s ease, box-shadow .08s ease;
}
.vv-shop-section .button:hover,
.vv-shop-section button.button:hover,
.vv-shop-section a.button:hover,
.vv-shop-section button[type="submit"]:hover {
  background: var(--vv-orange-dark);
  color: var(--vv-cream);
  transform: translate(2px, 2px);
  box-shadow: 3px 3px 0 var(--vv-ink);
}

/* Single product */
.vv-shop-section div.product .product_title {
  font-family: var(--vv-display);
  color: var(--vv-ink);
}
.vv-shop-section div.product p.price {
  font-family: var(--vv-mono);
  font-size: 20px;
  color: var(--vv-green);
}
.vv-shop-section div.product .woocommerce-product-gallery img {
  border: 3px solid var(--vv-ink);
}
.vv-shop-section div.product .woocommerce-tabs ul.tabs li {
  border: 3px solid var(--vv-ink);
  border-radius: 0;
  background: var(--vv-paper);
}
.vv-shop-section div.product .woocommerce-tabs ul.tabs li.active {
  background: var(--vv-gold);
}

/* Cart + checkout tables and forms */
.vv-shop-section table.shop_table {
  border: 3px solid var(--vv-ink);
  border-radius: 0;
  background: var(--vv-paper);
  font-family: var(--vv-body);
}
.vv-shop-section table.shop_table th {
  font-family: var(--vv-display);
  font-size: 13px;
  text-transform: uppercase;
  color: var(--vv-ink);
}
.vv-shop-section .woocommerce-checkout #payment,
.vv-shop-section .cart_totals,
.vv-shop-section .woocommerce-form-login,
.vv-shop-section .woocommerce-MyAccount-content {
  border: 3px solid var(--vv-ink);
  border-radius: 0;
  background: var(--vv-paper);
  padding: 18px;
}
.vv-shop-section input.input-text,
.vv-shop-section textarea,
.vv-shop-section select {
  font-family: var(--vv-body);
  border: 3px solid var(--vv-ink);
  border-radius: 0;
  background: #fff;
  padding: 10px 12px;
  color: var(--vv-ink);
}

/* Notices */
.vv-shop-section .woocommerce-message,
.vv-shop-section .woocommerce-info,
.vv-shop-section .woocommerce-error {
  border: 3px solid var(--vv-ink);
  border-top-width: 3px;
  border-radius: 0;
  background: var(--vv-paper);
  color: var(--vv-ink);
  font-family: var(--vv-body);
}
.vv-shop-section .woocommerce-message { border-left: 10px solid var(--vv-green); }
.vv-shop-section .woocommerce-info { border-left: 10px solid var(--vv-gold); }
.vv-shop-section .woocommerce-error { border-left: 10px solid var(--vv-orange-dark); }
