.btvn-merch {
  margin: 14px 0 0;
  padding: 14px;
  border: 1px solid #dfd0c5;
  border-radius: 12px;
  background: #fffaf5;
  color: #36261e;
}
.btvn-merch h2 { margin: 0 0 10px; font-size: clamp(19px, 2vw, 23px); color: inherit; }
.btvn-merch h3 { margin: 0; font-size: 18px; color: inherit; }
.btvn-merch a { color: #743622; font-weight: 700; text-decoration: underline; }
.btvn-merch [hidden] { display: none !important; }
.btvn-merch-tea {
  display: grid;
  grid-template-columns: clamp(104px, 22%, 160px) minmax(0, 1fr);
  gap: 12px;
  align-items: start;
}
.btvn-merch-tea img {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 1;
  object-fit: contain;
  border-radius: 8px;
  background: #f3e9df;
}
.btvn-merch-details p { margin: 4px 0; font-size: 15px; }
.btvn-merch-price { display: block; color: #843f2a; font-size: 17px; }
.btvn-merch-actions { display: flex; align-items: center; flex-wrap: wrap; gap: 8px; margin-top: 8px; }
.btvn-merch .btvn-merch-action,
.btvn-merch summary {
  min-height: 44px;
  margin: 0;
  padding: 8px 12px;
  border: 1px solid #843f2a;
  border-radius: 8px;
  background: #843f2a;
  color: #fff;
  font: inherit;
  font-size: 15px;
  font-weight: 700;
  letter-spacing: normal;
  text-transform: none;
}
.btvn-merch summary { display: list-item; cursor: pointer; }
.btvn-merch .btvn-merch-action:disabled { opacity: .65; cursor: default; }
.btvn-merch-status:empty { display: none; }
.btvn-merch-sets { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; margin-top: 10px; }
.btvn-merch-set { min-width: 0; padding: 10px; border: 1px solid #e4d8ce; border-radius: 9px; background: #fff; }
.btvn-merch-set.is-current { border-color: #843f2a; }
.btvn-merch-sku, .btvn-merch-note { margin: 4px 0; font-size: 14px; }
.btvn-merch-set dl { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 3px 6px; margin: 8px 0; font-size: 15px; }
.btvn-merch-set dt, .btvn-merch-set dd { margin: 0; }
.btvn-merch-set dd { font-weight: 700; }
.btvn-merch-set > a, .btvn-merch-actions > a { display: inline-flex; align-items: center; min-height: 44px; }
.btvn-merch :is(a, button, summary):focus-visible { outline: 2px solid #843f2a; outline-offset: 2px; }
.btvn-merch-category { padding: clamp(14px, 2.2vw, 22px); }
.btvn-merch .btvn-merch-intro { margin: 0; font-size: 15px; line-height: 1.55; }
.btvn-merch-pairing .btvn-merch-tea {
  margin-top: 10px;
  padding: 10px;
  background: #fff;
  border: 1px solid #e6d7cc;
  border-radius: 9px;
}
.btvn-merch-pairing .btvn-merch-disclaimer { margin: 10px 0 0; font-size: 14px; }
.btvn-merch-pairing .btvn-merch-details { min-width: 0; overflow-wrap: anywhere; }
.btvn-merch .btvn-merch-cards {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
  margin: 14px 0 0;
  padding: 0;
  list-style: none;
}
.btvn-merch-cards > li {
  min-width: 0;
  margin: 0 !important;
  border: 1px solid #e6d7cc;
  border-radius: 9px;
  background: #fff;
}
.btvn-merch-cards > li > a { display: block; padding: 8px; text-decoration: none; }
.btvn-merch-cards > li > a:hover .btvn-merch-card-name { text-decoration: underline; }
.btvn-merch-cards img {
  display: block;
  width: 100%;
  height: auto;
  max-height: 216px;
  aspect-ratio: 1;
  object-fit: contain;
  border-radius: 6px;
  background: #f5eee8;
}
.btvn-merch-card-name {
  display: block;
  margin: 7px 0 4px;
  color: #36261e;
  font-size: 15px;
  line-height: 1.35;
  overflow-wrap: anywhere;
}
.btvn-merch-category-actions { display: flex; flex-wrap: wrap; gap: 4px 14px; margin-top: 12px; }
.btvn-merch-category-actions > a { display: inline-flex; align-items: center; min-height: 44px; }
.btvn-merch-category-actions > .btvn-merch-category-primary {
  padding: 6px 12px;
  border: 1px solid #b68a76;
  border-radius: 8px;
  background: #fff;
  text-decoration: none;
}
.btvn-merch-category-actions > .btvn-merch-category-primary:hover { background: #f3e6db; }
@media (max-width: 600px) {
  .btvn-merch-sets { grid-template-columns: minmax(0, 1fr); }
}
.btvn-merch-cards > li { display: flex; flex-direction: column; }
.btvn-merch-cards > li > .btvn-merch-actions { margin: auto 8px 8px; padding-top: 6px; }
.btvn-merch-actions > .btvn-merch-status { flex-basis: 100%; margin: 0; font-size: 14px; }
.btvn-merch-actions > .btvn-merch-choose { text-decoration: none; }
.btvn-merch-cards .btvn-merch-action { width: 100%; }
.btvn-table-hide { display: none !important; }
.btvn-table-presets, .btvn-table-step { display: flex; gap: 6px; align-items: center; flex-wrap: wrap; }
.btvn-table-presets { margin: 10px 0; }
.btvn-table-presets button, .btvn-table-step button {
  min-width: 44px; min-height: 44px; margin: 0; padding: 0 8px;
  border: 1px solid #bd907a; border-radius: 7px; color: #743622; background: #fff;
  font: inherit; font-weight: 700; text-transform: none;
}
.btvn-table-items { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 8px; }
.btvn-table-item { display: grid; grid-template-columns: clamp(68px,30%,112px) minmax(0,1fr); align-items: start; gap: 8px; padding: 8px; background: #fff; border: 1px solid #e5d5cb; border-radius: 8px; }
.btvn-table-item img { width: 100%; aspect-ratio: 1; object-fit: contain; height: auto; border-radius: 6px; }
.btvn-table-current { margin-left: 5px; color: #684d3b; }
.btvn-table-step input { width: 55px; min-height: 44px; margin: 0; text-align: center; padding: 3px; }
.btvn-table-detail label { display: block; margin: 4px 0; }
.btvn-table-detail select { width: 100%; min-height: 44px; margin: 4px 0; font-size: 15px; }
.btvn-table-subtotal { display: block; margin-top: 10px; }
.btvn-table-shipping, .btvn-table-shipping-note { margin: 4px 0 8px; font-size: 14px; color: #62483d; }
.btvn-table > a { margin-left: 10px; }
@media(max-width: 620px) { .btvn-table-items { grid-template-columns: minmax(0,1fr); } }

.btvn-table .btvn-table-step { display: grid; grid-template-columns: 44px minmax(38px, 54px) 44px; gap: 5px; }
.btvn-table .btvn-table-step > input[type=number] { width: 100%; min-width: 0; max-width: 54px; }
.btvn-table .btvn-table-step > button { width: 44px; padding: 0; }
.btvn-table .btvn-table-presets > button:hover, .btvn-table .btvn-table-step > button:hover:not(:disabled) { background: #f6ebe2; }

.btvn-table-needs { display: flex; flex-wrap: wrap; gap: 8px; margin: 10px 0; }
.btvn-table-needs > :is(a, button) {
  display: inline-flex; align-items: center; min-height: 44px; margin: 0; padding: 7px 11px;
  background: #fff; border: 1px solid #bd907a; border-radius: 8px; color: #743622;
  font: inherit; font-weight: 700; line-height: 1.3; text-decoration: none; text-transform: none;
}
.btvn-table-needs > :is(a, button):hover { background: #f6ebe2; }
.btvn-table-needs > button[aria-pressed=true] { background: #743622; border-color: #743622; color: #fff; }
.btvn-table-items { margin-top: 10px; }
form#btvn-table-current-purchase { scroll-margin-top: 120px; }
@media (max-width: 480px) {
  .btvn-table-needs { display: grid; grid-template-columns: minmax(0,1fr); }
}

.btvn-need-result { padding: 12px; margin-top: 12px; background: #fff; border: 1px solid #e6d7cc; border-radius: 8px; }
.btvn-need-result > p { margin: 0; font-size: 15px; }
.btvn-need-result .btvn-merch-actions:empty { display: none; }
.btvn-need-product { width: 100%; display: grid; grid-template-columns: clamp(85px, 25%, 110px) minmax(0,1fr); gap: 10px; overflow-wrap: anywhere; }
.btvn-need-product img { width: 100%; aspect-ratio: 1; height: auto; object-fit: contain; border-radius: 6px; }
