body {
  background: #fff;
}
.shop-product-page .shop-wrap {
  width: var(--shop-container);
}

.shop-product-breadcrumb {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 7px;
  color: var(--shop-subtle-color);
  font-size: 14px;
}

.shop-product-breadcrumb a {
  color: var(--shop-subtle-color);
}

.shop-product-breadcrumb strong {
  color: var(--shop-text-color);
}

.shop-product-breadcrumb .shop-icon {
  width: 14px;
  height: 14px;
  opacity: 0.68;
}

.shop-product-page-layout {
  display: grid;
  align-items: start;
}

.shop-product-main {
  min-width: 0;
}

.shop-product-top {
  display: grid;
  grid-template-columns: minmax(520px, 1.12fr) minmax(360px, 0.88fr);
  align-items: start;
}

.shop-product-gallery {
  display: grid;
  grid-template-columns: 100px minmax(0, 1fr);
  min-width: 0;
}

.shop-product-thumbs {
  display: grid;
  align-content: start;
}

.shop-product-thumbs button {
  position: relative;
  display: grid;
  place-items: center;
  aspect-ratio: 1.28 / 1;
  width: 100px;
  padding: 0;
  overflow: hidden;
  border: 1px solid var(--shop-card-border-color);
  border-radius: var(--shop-radius);
  background: #fff;
  cursor: pointer;
}

.shop-product-thumbs img,
.shop-product-main-image img {
  width: 100%;
  height: 100%;
  object-fit: contain;
}

.shop-product-video-thumb::after {
  content: "";
  position: absolute;
  inset: 0;
  background: rgba(0, 0, 0, 0.42);
}

.shop-product-video-thumb span {
  position: absolute;
  z-index: 2;
  inset: 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 6px;
  color: #fff;
  font-size: 13px;
  font-weight: 900;
  text-align: center;
}

.shop-product-video-thumb .shop-icon {
  display: none;
}

.shop-product-video-thumb span::before {
  content: "";
  display: block;
  width: 34px;
  height: 34px;
  border: 2px solid var(--shop-focus-border-color);
  border-radius: 50%;
  background:
    linear-gradient(90deg, #fff 0 0) center / 0 0 no-repeat,
    rgba(0, 0, 0, 0.12);
  -webkit-clip-path: circle(50%);
  clip-path: circle(50%);
  box-shadow: 0 4px 14px color-mix(in srgb, var(--liuer-shadow-hex) 22%, transparent);
}

.shop-product-video-thumb span::after {
  content: "";
  position: absolute;
  top: calc(50% - 13px);
  left: 50%;
  width: 0;
  height: 0;
  border-top: 7px solid transparent;
  border-bottom: 7px solid transparent;
  border-left: 11px solid var(--liuer-inverse-border-hex);
  transform: translate(-35%, -50%);
}

.shop-product-main-image {
  position: relative;
  display: grid;
  place-items: center;
  overflow: hidden;
  padding: var(--shop-product-main-image-padding);
  border: 1px solid var(--liuer-border);
  border-radius: var(--shop-radius);
  background: #fff;
}

.shop-product-main-image img {
  object-fit: contain;
  padding: 0;
  transition: opacity 0.18s ease;
}

.shop-product-main-image iframe {
  width: 100%;
  height: 100%;
  border: 0;
  background: #000;
}

.shop-product-main-image.is-video .shop-product-sale,
.shop-product-main-image.is-video [data-product-main-image] {
  display: none;
}

.shop-product-sale {
  position: absolute;
  z-index: 2;
  background: #d9342b;
  color: #fff;
  font-size: 13px;
}

.shop-product-buybox {
  min-width: 0;
}

.shop-product-buybox h1 {
  margin: 0;
  color: var(--shop-text-color);
  font-size: 20px;
  line-height: 1.14;
  font-weight: 900;
}

.shop-product-rating-row {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 5px 10px;
  color: var(--shop-text-color);
  font-size: 14px;
  line-height: 1;
  width: fit-content;
  cursor: pointer;
}

.shop-product-rating-row:focus-visible {
  border-radius: var(--shop-radius-sm);
  outline: 2px solid var(--shop-accent-border-strong-color);
  outline-offset: 4px;
}

.shop-product-rating-row i {
  width: 1px;
  height: 14px;
  background: var(--shop-card-border-color);
}

.shop-product-stars {
  display: inline-flex;
  align-items: center;
  color: #ffae19;
  line-height: 1;
}

.shop-product-stars__icons,
.shop-stars-icons {
  display: inline-flex;
  align-items: center;
  gap: 2px;
  color: #ffae19;
  line-height: 1;
}

.shop-product-stars__icons i,
.shop-stars-icons i {
  display: block;
  width: 18px;
  height: 18px;
  background: #d5ddd9;
  -webkit-mask: var(--shop-rating-star-icon) center / contain no-repeat;
  mask: var(--shop-rating-star-icon) center / contain no-repeat;
}

.shop-product-stars__icons i.is-active,
.shop-stars-icons i.is-active {
  background: currentColor;
  -webkit-mask-image: var(--shop-rating-star-solid-icon);
  mask-image: var(--shop-rating-star-solid-icon);
}

.shop-stars-icons i {
  width: 13px;
  height: 13px;
}

.shop-product-price {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  line-height: 1;
}

.shop-product-price [data-product-price-main] {
  display: contents;
}

.shop-product-price .price {
  display: inline-flex;
  flex-wrap: wrap;
  align-items: center;
  line-height: 1;
}

.shop-product-price strong {
  color: var(--liuer-accent-strong);
  font-size: 22px;
  font-weight: 900;
  line-height: 1;
}

.shop-product-price ins {
  text-decoration: none;
}

.shop-product-price .price ins .amount,
.shop-product-price .price > .amount {
  color: var(--liuer-accent-strong);
  font-size: 20px;
  font-weight: 900;
  line-height: 1;
}

.shop-product-price del,
.shop-product-price .price del .amount {
  color: #8b9490;
}

.shop-product-price b {
  color: #d9342b;
}

.shop-product-shortdesc {
  color: var(--shop-muted-color);
}

.shop-product-shortdesc p {
  margin: 0 0 8px;
}

.shop-product-options {
  display: grid;
  gap: 18px;
  margin-top: 24px;
}

.shop-product-option-group {
  display: grid;
  gap: 10px;
}

.shop-product-option-group strong,
.shop-product-qty > span {
  color: var(--shop-text-color);
  font-size: 15px;
  font-weight: 900;
}

.shop-product-option-group div {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
}

.shop-product-option-group span {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 78px;
  min-height: 46px;
  padding: 0 18px;
  border: 1px solid var(--shop-card-border-color);
  border-radius: var(--shop-radius-sm);
  background: #fff;
  color: var(--shop-text-color);
  font-weight: 800;
}

.shop-product-option-group span.is-selected {
  border-color: var(--liuer-accent-border-hex);
  box-shadow: inset 0 0 0 1px var(--liuer-accent-shadow-hex);
}

.shop-product-cart {
  margin-top: 22px;
}

.shop-product-qty {
  display: flex;
  align-items: center;
  gap: 12px;
}

.shop-product-qty div {
  display: inline-grid;
  grid-template-columns: 42px 58px 42px;
  height: 42px;
  overflow: hidden;
  border: 1px solid var(--shop-card-border-color);
  border-radius: var(--shop-radius-sm);
  background: #fff;
}

.shop-product-qty button,
.shop-product-qty input {
  width: 100%;
  border: 0;
  background: #fff;
  color: var(--shop-text-color);
  font: inherit;
  font-weight: 900;
  text-align: center;
}

.shop-product-qty button {
  cursor: pointer;
}

.shop-product-qty input {
  border-right: 1px solid var(--shop-card-border-color);
  border-left: 1px solid var(--shop-card-border-color);
  -moz-appearance: textfield;
}

.shop-product-qty input::-webkit-outer-spin-button,
.shop-product-qty input::-webkit-inner-spin-button {
  margin: 0;
  -webkit-appearance: none;
}

.shop-product-actions {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 0.82fr);
}

.shop-product-actions button,
.shop-product-actions a,
.shop-product-action-link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  min-height: 54px;
  padding: 0 20px;
  border-radius: var(--shop-radius-sm);
  font: inherit;
  font-weight: 900;
  text-transform: uppercase;
}

.shop-product-catalog-actions {
  grid-template-columns: minmax(0, 1fr);
}

.shop-product-actions .shop-product-catalog-cta {
  gap: 9px;
  border-color: var(--liuer-accent-border-hex);
  background: var(--liuer-accent);
  color: var(--shop-inverse-color);
}

.shop-product-catalog-cta .shop-icon-inline {
  width: 20px;
  height: 20px;
}

.shop-product-actions button {
  border: 0;
  background: linear-gradient(180deg, #0a6b2e, #084d22);
  color: #fff;
  cursor: pointer;
  box-shadow: 0 8px 18px color-mix(in srgb, var(--liuer-accent-shadow-hex) 22%, transparent);
}

.shop-product-actions a,
.shop-product-action-link {
  border: 1px solid var(--liuer-accent-border-hex);
  background: #fff;
  color: var(--liuer-accent-strong);
  text-decoration: none;
}

.shop-product-unavailable {
  margin: 22px 0 0;
  color: #d9342b;
  font-weight: 900;
}

.shop-product-tabs,
.shop-product-reviews-section,
.shop-product-related-section {
  border: 1px solid var(--shop-card-border-color);
  border-radius: var(--shop-radius);
  background: #fff;
}

.shop-product-tab-list {
  display: flex;
  padding: 0 15px;
  border-bottom: 1px solid var(--shop-card-border-color);
}

.shop-product-tab-list button {
  position: relative;
  border: 0;
  background: transparent;
  color: var(--shop-subtle-color);
  font: inherit;
  cursor: pointer;
}

.shop-product-tab-list button.is-active {
  color: var(--shop-text-color);
}

.shop-product-tab-list button.is-active::after {
  content: "";
  position: absolute;
  right: 0;
  bottom: 0;
  left: 0;
  background: var(--liuer-accent);
}

.shop-product-tab-panel {
  padding: 15px;
  color: var(--shop-muted-color);
  font-size: 16px;
  line-height: 1.75;
}

.shop-product-reviews-section {
  padding: 15px;
  scroll-margin-top: calc(var(--shop-header-height, 86px) + 16px);
}

.shop-product-content p {
  margin: 0 0 12px;
}

.shop-product-specs {
  display: grid;
  margin: 0;
  overflow: hidden;
  border: 1px solid var(--liuer-border);
  border-radius: var(--shop-radius);
  background: var(--liuer-surface);
}

.shop-product-specs div {
  display: grid;
  grid-template-columns: minmax(160px, 32%) minmax(0, 1fr);
  gap: 18px;
  padding: 14px 16px;
  border-bottom: 1px solid var(--liuer-border);
}

.shop-product-specs div:last-child {
  border-bottom: 0;
}

.shop-product-specs dt,
.shop-product-specs dd {
  margin: 0;
}

.shop-product-specs dt {
  color: var(--shop-muted-color);
  font-weight: 600;
}

.shop-product-specs dd {
  color: var(--shop-text-color);
  font-weight: 600;
  line-height: 1.5;
  overflow-wrap: anywhere;
}

.shop-product-guide {
  color: var(--shop-text-color);
  line-height: 1.7;
}

.shop-product-guide > :first-child {
  margin-top: 0;
}

.shop-product-guide > :last-child {
  margin-bottom: 0;
}

.shop-product-guide h2,
.shop-product-guide h3,
.shop-product-guide h4 {
  margin: 22px 0 10px;
  color: var(--shop-heading-color);
  line-height: 1.35;
}

.shop-product-guide h2 {
  font-size: 20px;
}

.shop-product-guide h3 {
  font-size: 17px;
}

.shop-product-guide h4 {
  font-size: 15px;
}

.shop-product-guide p,
.shop-product-guide ul,
.shop-product-guide ol {
  margin: 0 0 12px;
}

.shop-product-guide ul,
.shop-product-guide ol {
  padding-left: 22px;
}

.shop-product-guide li + li {
  margin-top: 6px;
}

.shop-product-guide a {
  color: var(--liuer-accent-strong);
  text-decoration: underline;
  text-underline-offset: 3px;
}

.shop-product-guide img {
  height: auto;
  border-radius: var(--shop-radius-sm);
}

.shop-product-guide table {
  width: 100%;
  border-collapse: collapse;
}

.shop-product-guide th,
.shop-product-guide td {
  padding: 10px 12px;
  border: 1px solid var(--liuer-border);
  text-align: left;
}

.shop-product-variation-form {
  margin-top: 10px;
}

.shop-product-variation-form form {
  margin: 0;
}

.shop-product-variation-form table,
.shop-product-variation-form tbody,
.shop-product-variation-form tr,
.shop-product-variation-form th,
.shop-product-variation-form td {
  display: block;
  width: 100%;
  margin: 0;
  padding: 0;
  border: 0;
}

.shop-product-variation-form th {
  text-align: left;
}

.shop-product-variation-form label {
  display: block;
  margin-bottom: 10px;
  color: var(--shop-text-color);
  font-size: 14px;
  font-weight: 900;
}

.shop-product-variation-form select {
  position: absolute;
  width: 1px;
  height: 1px;
  overflow: hidden;
  opacity: 0;
  pointer-events: none;
}

.shop-product-variation-form .reset_variations {
  display: none !important;
}

.shop-variation-choices {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
}

.shop-variation-choice {
  line-height: 1;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: 1px solid var(--liuer-border);
  border-radius: var(--shop-radius-sm);
  background: #fff;
  color: var(--shop-text-color);
  font: inherit;
  font-size: 14px;
  cursor: pointer;
  transition:
    border-color 0.16s ease,
    box-shadow 0.16s ease,
    color 0.16s ease,
    transform 0.16s ease;
}

.shop-variation-choice.is-disabled {
  opacity: 0.38;
  cursor: not-allowed;
}

.shop-variation-choices.is-visual {
  gap: 15px;
}

.shop-variation-choices.is-visual .shop-variation-choice.is-color {
  position: relative;
  min-width: 0;
  min-height: 0;
  padding: 0;
  border: 0;
  border-radius: 50%;
  background: var(--variation-color, #7b4a25);
  box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--liuer-shadow-hex) 14%, transparent);
}

.shop-variation-choices.is-visual .shop-variation-choice.is-image {
  width: 52px;
  height: 52px;
  padding: 0;
  border-radius: var(--shop-radius-sm);
  background: #fff var(--variation-image) center / cover no-repeat;
  overflow: hidden;
}

.shop-variation-choices.is-visual .shop-variation-choice.is-color.is-active::after,
.shop-variation-choices.is-visual .shop-variation-choice.is-image.is-active::after {
  content: "";
  position: absolute;
  inset: -4px;
  border: 1px solid var(--liuer-accent-border-hex);
  border-radius: inherit;
}

.shop-variation-choices.is-visual .shop-variation-choice.is-color span,
.shop-variation-choices.is-visual .shop-variation-choice.is-image span {
  position: absolute;
  width: 1px;
  height: 1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
}

.shop-product-variation-form .single_variation_wrap {
  margin-top: 20px;
}

.shop-product-variation-form .woocommerce-variation {
  margin-bottom: 12px;
  color: var(--shop-muted-color);
}

.shop-product-variation-form .woocommerce-variation-price {
  display: none;
}

.shop-product-variation-form .woocommerce-variation-availability {
  display: none;
}

.shop-product-variation-form .woocommerce-variation-add-to-cart {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 0.74fr);
  gap: 12px 14px;
  align-items: center;
  margin-top: 12px;
}

.shop-product-variation-form .woocommerce-variation-add-to-cart::before {
  content: "Số lượng:";
  grid-column: 1;
  grid-row: 1;
  color: var(--shop-text-color);
  font-size: 14px;
  font-weight: 900;
}

.shop-product-variation-form .quantity {
  grid-column: 1;
  grid-row: 1;
  justify-self: start;
  margin-left: 92px;
  display: inline-grid;
  grid-template-columns: 38px 56px 38px;
  width: 132px;
  height: 40px;
  overflow: hidden;
  border: 1px solid var(--liuer-border);
  border-radius: var(--shop-radius-sm);
  background: #fff;
}

.shop-product-variation-form .quantity input,
.shop-product-variation-form .quantity button {
  width: 100%;
  background: #fff;
  border: 0;
  color: var(--shop-text-color);
  font: inherit;
  font-weight: 900;
  text-align: center;
}

.shop-product-variation-form .quantity input {
  border-right: 1px solid var(--shop-card-border-color);
  border-left: 1px solid var(--shop-card-border-color);
  -moz-appearance: textfield;
}

.shop-product-variation-form .quantity input::-webkit-outer-spin-button,
.shop-product-variation-form .quantity input::-webkit-inner-spin-button {
  margin: 0;
  -webkit-appearance: none;
}

.shop-product-variation-form .quantity button {
  cursor: pointer;
}

.shop-product-variation-form .single_add_to_cart_button {
  grid-column: 1;
  grid-row: 2;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  min-height: 48px;
  padding: 0 18px;
  border: 0;
  border-radius: var(--shop-radius-sm);
  background: linear-gradient(180deg, #0a6b2e, #084d22);
  color: #fff;
  font: inherit;
  font-size: 14px;
  font-weight: 900;
  line-height: 1;
  text-transform: uppercase;
  white-space: nowrap;
  cursor: pointer;
  box-shadow: 0 8px 18px color-mix(in srgb, var(--liuer-accent-shadow-hex) 20%, transparent);
}

.shop-product-variation-form .single_add_to_cart_button::before {
  content: "";
  width: 19px;
  height: 19px;
  flex: 0 0 19px;
  background: currentColor;
  -webkit-mask: var(--i-cart) center / contain no-repeat;
  mask: var(--i-cart) center / contain no-repeat;
}

.shop-product-buy-now {
  grid-column: 2;
  grid-row: 2;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 48px;
  padding: 0 18px;
  border: 1px solid var(--liuer-accent-border-hex);
  border-radius: var(--shop-radius-sm);
  background: #fff;
  color: var(--liuer-accent-strong);
  font: inherit;
  font-size: 14px;
  font-weight: 900;
  line-height: 1;
  text-transform: uppercase;
  white-space: nowrap;
  cursor: pointer;
}

.shop-product-variation-form .single_add_to_cart_button.disabled,
.shop-product-buy-now:disabled {
  opacity: 0.48;
  cursor: not-allowed;
}

.shop-product-cart button[type="submit"],
.shop-product-variation-form .single_add_to_cart_button,
.shop-product-related .shop-add-cart {
  position: relative;
}

.shop-product-cart button[type="submit"].is-loading,
.shop-product-variation-form .single_add_to_cart_button.is-loading,
.shop-product-related .shop-add-cart.is-loading {
  opacity: 0.82;
  cursor: wait;
}

.shop-product-cart button[type="submit"].is-loading::after,
.shop-product-variation-form .single_add_to_cart_button.is-loading::after,
.shop-product-related .shop-add-cart.is-loading::after {
  content: "";
  width: 16px;
  height: 16px;
  border: 2px solid var(--shop-inverse-border-strong-color);
  border-top-color: var(--liuer-inverse-border-hex);
  border-radius: 50%;
  animation: shop-review-spin 0.72s linear infinite;
}

.shop-product-related .shop-add-cart.is-loading::before {
  display: none;
}

.shop-product-cart button[type="submit"].is-added,
.shop-product-variation-form .single_add_to_cart_button.is-added,
.shop-product-related .shop-add-cart.is-added {
  background: linear-gradient(180deg, #108647, #0a6b2e);
}

.shop-product-cart button[type="submit"].has-error,
.shop-product-variation-form .single_add_to_cart_button.has-error,
.shop-product-related .shop-add-cart.has-error {
  background: linear-gradient(180deg, #d9342b, #a9231d);
}

.shop-product-reviews {
  display: grid;
  gap: 18px;
  color: var(--shop-text-color);
}

.shop-review-summary {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 16px;
  padding-bottom: 14px;
  border-bottom: 1px solid var(--shop-card-border-color);
}

.shop-review-summary h2,
.shop-product-reviews .comment-reply-title {
  display: block;
  margin: 0;
  color: var(--shop-text-color);
  font-size: 20px;
  font-weight: 900;
}

.shop-review-summary p {
  margin: 6px 0 0;
  color: var(--shop-subtle-color);
  font-size: 14px;
}

.shop-review-summary > span {
  flex: 0 0 auto;
  color: var(--liuer-accent);
  font-weight: 900;
}

.shop-review-layout {
  display: grid;
  gap: 15px;
  align-items: start;
}
.comment-form-rating.shop-review-rating-field {
  display: flex;
  align-items: center;
}
#comment-form-rating-label {
  margin-bottom: 0px;
}
.shop-review-list {
  min-width: 0;
  padding: 18px;
  border: 1px solid var(--shop-card-border-color);
  border-radius: var(--shop-radius);
  background: #fff;
}
.shop-product-video-thumb img {
  height: 135%;
}
.shop-product-reviews .commentlist {
  display: grid;
  gap: 12px;
  margin: 0;
  padding: 0;
  list-style: none;
}

.shop-review-item {
  display: grid;
  grid-template-columns: 35px minmax(0, 1fr);
  gap: 15px;
  padding: 0 0 14px;
  border-bottom: 1px solid var(--shop-card-border-color);
}

.shop-review-entry:last-child .shop-review-item {
  padding-bottom: 0;
  border-bottom: 0;
}

.shop-review-initial {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 35px;
  height: 35px;
  border-radius: 50%;
  background: #eef6f2;
  color: var(--liuer-accent);
  font-size: 18px;
  font-weight: 900;
  text-transform: uppercase;
}

.shop-review-body {
  min-width: 0;
}

.shop-review-meta {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 0px;
  margin-bottom: 5px;
}

.shop-review-meta strong,
.shop-review-meta time {
  display: block;
  line-height: 1;
}

.shop-review-meta strong {
  color: var(--shop-text-color);
  font-size: 15px;
  font-weight: 900;
}

.shop-review-meta time {
  margin-top: 8px;
  color: var(--shop-subtle-color);
  font-size: 12px;
}

.shop-review-description p,
.shop-product-reviews .woocommerce-noreviews,
.shop-product-reviews .woocommerce-verification-required,
.shop-product-reviews .must-log-in {
  margin: 0;
  color: var(--shop-muted-color);
  font-size: 14px;
  line-height: 1.65;
}

.shop-review-stars-inline,
.shop-review-star-buttons {
  display: inline-flex;
  align-items: center;
  gap: 4px;
}

.shop-review-star-buttons {
  align-items: flex-start;
  gap: 18px;
  padding-top: 2px;
}

.shop-review-stars-inline span,
.shop-review-star-button::before {
  display: block;
  width: 18px;
  height: 18px;
  background: #d5ddd9;
  content: "";
  -webkit-mask: var(--shop-review-star-icon) center / contain no-repeat;
  mask: var(--shop-review-star-icon) center / contain no-repeat;
}

.shop-review-stars-inline span.is-active {
  background: #f5a623;
  -webkit-mask-image: var(--shop-review-star-solid-icon);
  mask-image: var(--shop-review-star-solid-icon);
}

.shop-review-form-card .comment-reply-title {
  margin-bottom: 14px;
}

.shop-product-reviews .comment-form {
  position: relative;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
}

.shop-product-reviews .comment-form p,
.shop-product-reviews .comment-form-rating {
  margin: 0;
}

.shop-product-reviews .comment-form-rating,
.shop-product-reviews .comment-form-comment,
.shop-product-reviews .comment-notes,
.shop-product-reviews .form-submit,
.shop-product-reviews .must-log-in {
  grid-column: 1 / -1;
}

.shop-product-reviews .comment-form label {
  display: block;
  margin-bottom: 7px;
  color: var(--shop-text-color);
  font-size: 13px;
  font-weight: 900;
}

.shop-product-reviews .comment-form input:not([type="checkbox"]),
.shop-product-reviews .comment-form select,
.shop-product-reviews .comment-form textarea {
  width: 100%;
  padding: 12px;
  border: 1px solid var(--shop-card-border-color);
  border-radius: var(--shop-radius-sm);
  background: #fff;
  color: var(--shop-text-color);
  font: inherit;
  outline: none;
}

.shop-product-reviews .comment-form input:focus,
.shop-product-reviews .comment-form select:focus,
.shop-product-reviews .comment-form textarea:focus {
  border-color: var(--shop-accent-border-strong-color);
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--liuer-accent-shadow-hex) 12%, transparent);
}

.shop-product-reviews .comment-form textarea {
  min-height: 118px;
  resize: vertical;
}

.shop-review-rating-field.is-enhanced select {
  position: absolute;
  width: 1px;
  height: 1px;
  margin: -1px;
  padding: 0;
  overflow: hidden;
  clip: rect(0 0 0 0);
  white-space: nowrap;
  border: 0;
}

.shop-review-rating-field.is-enhanced > label {
  position: absolute;
  width: 1px;
  height: 1px;
  margin: -1px;
  overflow: hidden;
  clip: rect(0 0 0 0);
  white-space: nowrap;
}

.shop-review-star-button {
  display: inline-flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 8px;
  width: 68px;
  min-height: 76px;
  padding: 0;
  border: 0;
  border-radius: var(--shop-radius-sm);
  background: transparent;
  color: #ff9800;
  cursor: pointer;
}

.shop-review-star-button::before {
  width: 44px;
  height: 40px;
  background: currentColor;
  transition:
    background 0.16s ease,
    transform 0.16s ease;
}

.shop-review-star-button span {
  display: block;
  color: #767d79;
  font-size: 14px;
  font-weight: 700;
  line-height: 1.2;
  text-align: center;
  white-space: nowrap;
}

.shop-review-star-button.is-active,
.shop-review-star-button.is-preview {
  color: #ff9800;
}

.shop-review-star-button.is-active::before,
.shop-review-star-button.is-preview::before {
  -webkit-mask-image: var(--shop-review-star-solid-icon);
  mask-image: var(--shop-review-star-solid-icon);
}

.shop-review-star-button.is-active span,
.shop-review-star-button.is-preview span {
  color: var(--shop-text-color);
}

.shop-review-star-button:hover::before,
.shop-review-star-button:focus-visible::before {
  transform: scale(1.08);
}

.shop-review-star-button:focus-visible {
  outline: 2px solid var(--shop-accent-border-strong-color);
  outline-offset: 2px;
}

.shop-review-rating-field.has-error .shop-review-star-buttons {
  width: fit-content;
  padding: 4px;
  border-radius: 999px;
  box-shadow: 0 0 0 2px color-mix(in srgb, var(--shop-danger-color) 55%, var(--liuer-inverse-border-hex));
}

.shop-product-reviews .form-submit button,
.shop-product-reviews .form-submit input {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  padding: 0 22px;
  border: 1px solid var(--liuer-accent-border-hex);
  color: #fff;
  font: inherit;
  font-size: 14px;
  cursor: pointer;
  transition:
    transform 0.16s ease,
    box-shadow 0.16s ease,
    opacity 0.16s ease;
}

.shop-product-reviews .form-submit button:hover,
.shop-product-reviews .form-submit input:hover {
  transform: translateY(-1px);
  box-shadow: 0 10px 24px
    color-mix(in srgb, var(--liuer-accent-shadow-hex) 28%, transparent);
}

.shop-product-reviews .form-submit button:disabled,
.shop-product-reviews .form-submit input:disabled {
  opacity: 0.72;
  cursor: wait;
  transform: none;
}

.shop-product-reviews .form-submit button i {
  display: none;
  width: 16px;
  height: 16px;
  border: 2px solid var(--shop-inverse-border-strong-color);
  border-top-color: var(--liuer-inverse-border-hex);
  border-radius: 50%;
  animation: shop-review-spin 0.72s linear infinite;
}

.shop-review-form.is-submitting .form-submit button i {
  display: block;
}

.shop-review-form.is-submitting::before {
  position: absolute;
  inset: -8px;
  z-index: 3;
  border-radius: var(--shop-radius);
  background: rgba(255, 255, 255, 0.62);
  content: "";
}

.shop-review-form.is-submitting::after {
  position: absolute;
  top: 50%;
  left: 50%;
  z-index: 4;
  width: 34px;
  height: 34px;
  margin: -17px 0 0 -17px;
  border: 3px solid color-mix(in srgb, var(--liuer-accent-border-hex) 22%, var(--liuer-inverse-border-hex));
  border-top-color: var(--liuer-accent-border-hex);
  border-radius: 50%;
  content: "";
  animation: shop-review-spin 0.72s linear infinite;
}

.shop-review-form-message {
  grid-column: 1 / -1;
  padding: 10px 12px;
  border-radius: var(--shop-radius-sm);
  background: #edf8f2;
  color: #0a6a3c;
  font-size: 13px;
  font-weight: 800;
  line-height: 1.45;
}

.shop-review-form-message.is-error {
  background: #fff0f0;
  color: #b42318;
}

.shop-review-form-message.is-success {
  background: #edf8f2;
  color: #0a6a3c;
}

.shop-review-entry.is-new .shop-review-item {
  animation: shop-review-highlight 1.2s ease;
}

@keyframes shop-review-spin {
  to {
    transform: rotate(360deg);
  }
}

@keyframes shop-review-highlight {
  0% {
    background: color-mix(in srgb, var(--liuer-accent) 12%, #fff);
  }

  100% {
    background: transparent;
  }
}

.shop-product-section-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
}

.shop-product-section-head h2 {
  margin: 0;
  color: var(--shop-text-color);
}

.shop-product-related {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
}

.shop-product-related .shop-product-card {
  position: relative;
  min-width: 0;
  overflow: hidden;
  border: 1px solid var(--shop-card-border-color);
  background: #fff;
  transition:
    transform 0.24s cubic-bezier(0.22, 1, 0.36, 1),
    box-shadow 0.24s ease,
    border-color 0.24s ease;
}

.shop-product-related .shop-product-card__link {
  display: flex;
  flex-direction: column;
  color: inherit;
}

.shop-product-related .shop-product-card__sale {
  position: absolute;
  z-index: 3;
  top: 10px;
  left: 10px;
  padding: 3px 8px;
  border-radius: 999px;
  background: var(--shop-danger-color);
  color: var(--shop-inverse-color);
  font-size: var(--shop-small-size);
  font-weight: 600;
  letter-spacing: 0.01em;
  box-shadow: 0 4px 10px color-mix(in srgb, var(--shop-danger-color) 30%, transparent);
}

.shop-product-related .shop-product-card__media {
  display: grid;
  place-items: center;
  aspect-ratio: 1 / 1;
  overflow: hidden;
}

.shop-product-related .shop-product-card__media img {
  width: 100%;
  height: 100%;
  transition: transform 0.4s cubic-bezier(0.22, 1, 0.36, 1);
}

.shop-product-related .shop-product-card:hover .shop-product-card__media img {
  transform: scale(1.07);
}

.shop-product-related .shop-product-card__body {
  padding: 12px;
}

.shop-product-related .shop-product-card h3 {
  display: -webkit-box;
  min-height: 38px;
  margin: 0;
  overflow: hidden;
  color: var(--shop-heading-color);
  font-size: var(--shop-card-title-size);
  line-height: 1.4;
  font-weight: 600;
  letter-spacing: 0;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
}

.shop-product-related .shop-stars > span:not(.shop-stars-icons) {
  color: var(--shop-subtle-color);
  letter-spacing: 0;
}

.shop-product-related .shop-price {
  display: flex;
  flex-wrap: wrap;
  gap: 7px;
  align-items: baseline;
  padding-right: 34px;
}

.shop-product-related .shop-price strong {
  color: var(--shop-danger-color);
  font-size: var(--shop-price-size);
  font-weight: 600;
  letter-spacing: 0;
}

.shop-product-related .shop-price del {
  color: var(--shop-subtle-color);
  font-size: var(--shop-small-size);
}

.shop-product-related .shop-add-cart {
  position: absolute;
  right: 10px;
  bottom: 10px;
  display: grid;
  place-items: center;
  width: 34px;
  height: 34px;
  border: 0;
  color: var(--shop-inverse-color);
  line-height: 1;
}

.shop-product-related .shop-add-cart:hover {
  transform: translateY(-2px) scale(1.05);
  box-shadow: 0 10px 20px color-mix(in srgb, var(--liuer-accent-shadow-hex) 34%, transparent);
}

.shop-product-related .shop-add-cart:active {
  transform: translateY(0) scale(0.97);
}

.shop-product-related .shop-add-cart::before {
  --icon: var(--i-cart);
  width: 17px;
  height: 17px;
}

.shop-product-sidebar {
  display: grid;
  position: sticky;
}

.shop-product-sidebar section {
  border: 1px solid var(--liuer-border);
  border-radius: var(--shop-radius);
  background: #fff;
}

.shop-product-sidebar h2 {
  margin: 0;
  color: var(--shop-text-color);
  font-size: 16px;
  line-height: 1.25;
}

.shop-product-sidebar-contact p {
  margin: 8px 0 16px;
  color: var(--shop-muted-color);
  font-size: 13px;
  line-height: 1.5;
  font-weight: 700;
}

.shop-product-contact-list {
  display: grid;
  gap: 10px;
}

.shop-product-contact-list a,
.shop-product-contact-list div {
  display: grid;
  grid-template-columns: 22px minmax(0, 1fr);
  gap: 10px;
  align-items: start;
  color: var(--shop-text-color);
}

.shop-product-contact-list .shop-icon {
  width: 22px;
  height: 22px;
  margin-top: 1px;
  opacity: 0.86;
}

.shop-product-contact-list strong,
.shop-product-contact-list small {
  display: block;
}

.shop-product-contact-list strong {
  color: var(--shop-text-color);
  line-height: 1.45;
  font-weight: 900;
  font-size: 14px;
}

.shop-product-contact-list small {
  margin-top: 0px;
  color: var(--shop-muted-color);
  font-size: 13px;
  line-height: 1.45;
  font-weight: 700;
}

.shop-product-sidebar-cta {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  margin-top: 18px;
  color: #fff;
  font-size: 14px;
}

.shop-product-sidebar-cats ul {
  display: grid;
  margin: 10px 0 0;
  padding: 0;
  list-style: none;
}

.shop-product-sidebar-cats li a,
.shop-product-sidebar-cats li > span {
  display: grid;
  grid-template-columns: 24px minmax(0, 1fr);
  align-items: center;
  gap: 10px;
  padding: 0 10px;
  border-radius: var(--shop-radius-sm);
  color: var(--shop-text-color);
  font-size: 14px;
  font-weight: 900;
  transition:
    background-color 0.16s ease,
    color 0.16s ease;
}

.shop-product-sidebar-cats li:first-child a,
.shop-product-sidebar-cats li:first-child > span,
.shop-product-sidebar-cats li a:hover {
  background: color-mix(in srgb, var(--liuer-accent) 6%, transparent);
  color: var(--liuer-accent-strong);
}

.shop-product-sidebar-cats .shop-icon {
  width: 20px;
  height: 20px;
  opacity: 0.78;
}

.shop-product-sidebar-cats .shop-menu-image {
  width: 20px;
  height: 20px;
  border-radius: var(--shop-radius-xs);
  object-fit: contain;
}

.shop-product-sidebar-cta:hover {
  color: #fff;
}

.shop-product-sidebar-contact a:hover strong {
  color: var(--liuer-accent-strong);
}


/* ---------------------------------------------------------------------------
   Product detail polish
--------------------------------------------------------------------------- */
.shop-product-page {
  padding: 14px 0 32px;
  background: #ffffff;
}

.shop-product-breadcrumb {
  margin-bottom: 14px;
  font-weight: 500;
}

.shop-product-breadcrumb strong {
  font-weight: 600;
}

.shop-product-page-layout {
  grid-template-columns: minmax(0, 1fr);
  gap: 16px;
}

.shop-product-top {
  gap: 18px;
}

.shop-product-gallery {
  gap: 12px;
}

.shop-product-thumbs {
  gap: 10px;
}

.shop-product-thumbs button {
  border-color: var(--liuer-border);
  box-shadow: none;
}

.shop-product-thumbs button:hover {
  border-color: var(--shop-accent-border-color);
}

.shop-product-thumbs button.is-active {
  border-color: var(--liuer-accent-border-hex);
  box-shadow: inset 0 0 0 1px var(--liuer-accent-shadow-hex);
}

.shop-product-sale {
  top: 12px;
  left: 12px;
  padding: 5px 9px;
  border-radius: var(--shop-radius-sm);
  font-weight: 700;
  box-shadow: none;
}

.shop-product-buybox {
  padding-top: 0;
}

.shop-product-rating-row {
  margin-top: 12px;
  font-weight: 500;
}

.shop-product-rating-row strong {
  font-weight: 700;
}

.shop-product-price {
  gap: 9px;
  margin-top: 14px;
}

.shop-product-price .price {
  gap: 12px;
}

.shop-product-price strong,
.shop-product-price .price ins .amount,
.shop-product-price .price > .amount {
  color: var(--liuer-accent-strong);
  font-size: 27px;
  font-weight: 700;
}

.shop-product-price del,
.shop-product-price .price del .amount {
  font-size: 14px;
  font-weight: 500;
}

.shop-product-price b {
  font-size: 14px;
  font-weight: 700;
}

.shop-product-shortdesc {
  margin-top: 14px;
  font-size: 14px;
  line-height: 1.65;
}

.shop-product-variation-form tr + tr {
  margin-top: 16px;
}

.shop-product-variation-form label,
.shop-product-variation-form .woocommerce-variation-add-to-cart::before,
.shop-product-option-group strong,
.shop-product-qty > span {
  font-weight: 700;
}

.shop-variation-choice {
  min-height: 38px;
  padding: 0 14px;
  border-color: var(--liuer-border);
  font-weight: 600;
  box-shadow: none;
}

.shop-variation-choice:hover {
  border-color: var(--shop-accent-border-color);
  box-shadow: none;
  transform: none;
}

.shop-variation-choice.is-active {
  border-color: var(--liuer-accent-border-hex);
  color: var(--liuer-accent-strong);
  box-shadow: inset 0 0 0 1px var(--liuer-accent-shadow-hex);
}

.shop-variation-choices.is-visual .shop-variation-choice.is-color {
  width: 28px;
  height: 28px;
}

.shop-product-variation-form .quantity,
.shop-product-qty div {
  border-color: var(--liuer-border);
  box-shadow: none;
}

.shop-product-variation-form .quantity input,
.shop-product-variation-form .quantity button,
.shop-product-qty button,
.shop-product-qty input {
  font-weight: 600;
}

.shop-product-actions {
  gap: 10px;
  margin-top: 18px;
}

.shop-product-actions button,
.shop-product-actions a,
.shop-product-action-link,
.shop-product-variation-form .single_add_to_cart_button,
.shop-product-buy-now {
  min-height: 48px;
  border-radius: var(--shop-radius-sm);
  font-weight: 700;
  text-transform: none;
  box-shadow: none;
}

.shop-product-actions button,
.shop-product-variation-form .single_add_to_cart_button {
  background: var(--liuer-accent);
}

.shop-product-actions button:hover,
.shop-product-variation-form .single_add_to_cart_button:hover {
  background: var(--liuer-accent-strong);
}

.shop-product-tabs,
.shop-product-reviews-section,
.shop-product-related-section {
  margin-top: 24px;
  border-color: var(--liuer-border);
  box-shadow: none;
}

.shop-product-tab-list {
  gap: 24px;
  min-height: 54px;
  border-color: var(--liuer-border);
}

.shop-product-tab-list button {
  font-size: 14px;
  font-weight: 600;
  text-transform: none;
}

.shop-product-tab-list button.is-active::after {
  height: 2px;
}

.shop-product-tab-panel,
.shop-product-reviews-section {
  padding: 18px;
}

.shop-review-summary h2,
.shop-product-reviews .comment-reply-title,
.shop-product-section-head h2 {
  font-weight: 700;
}

.shop-review-list {
  border-color: var(--liuer-border);
}

.shop-review-meta strong,
.shop-product-reviews .comment-form label {
  font-weight: 700;
}

.shop-product-reviews .form-submit button,
.shop-product-reviews .form-submit input {
  min-height: 44px;
  border-radius: var(--shop-radius-sm);
  background: var(--liuer-accent);
  font-weight: 700;
  text-transform: none;
  box-shadow: none;
}

.shop-product-section-head {
  margin-bottom: 12px;
}

.shop-product-section-head h2 {
  font-size: 20px;
  text-transform: none;
}

.shop-product-section-head a {
  display: inline-flex;
  align-items: center;
  min-height: 34px;
  padding: 0 11px;
  border: 1px solid var(--shop-accent-border-color);
  border-radius: var(--shop-radius-sm);
  background: #ffffff;
  color: var(--liuer-accent-strong);
  font-size: 13px;
  font-weight: 600;
}

.shop-product-section-head a:hover {
  border-color: var(--liuer-accent-border-hex);
  background: var(--liuer-accent);
  color: #ffffff;
}

.shop-product-related-section {
  padding: 16px;
}

.shop-product-related {
  gap: var(--shop-product-item-gap);
}

.shop-product-related .shop-product-card {
  border-color: var(--liuer-border);
  border-radius: var(--shop-radius);
  box-shadow: var(--shop-shadow-card);
}

.shop-product-related .shop-product-card:hover {
  transform: translateY(-2px);
  border-color: var(--shop-accent-border-color);
  box-shadow: 0 8px 22px color-mix(in srgb, var(--liuer-shadow-hex) 10%, transparent);
}

.shop-product-related .shop-product-card__media img {
  padding: var(--shop-product-card-image-padding);
  object-fit: contain;
  filter: none;
}

.shop-product-related .shop-product-card h3,
.shop-product-related .shop-stars,
.shop-product-related .shop-price strong {
  letter-spacing: 0;
}

.shop-product-related .shop-add-cart {
  border-radius: var(--shop-radius-sm);
  background: var(--liuer-accent);
  box-shadow: 0 4px 10px color-mix(in srgb, var(--liuer-accent-shadow-hex) 20%, transparent);
}

.shop-product-sidebar {
  top: calc(var(--shop-header-height) + 14px);
  gap: 12px;
}

.shop-product-sidebar section {
  padding: 16px;
  border-color: var(--liuer-border);
  box-shadow: none;
}

.shop-product-sidebar h2 {
  font-weight: 700;
  text-transform: none;
}

.shop-product-sidebar-contact p,
.shop-product-contact-list small {
  font-weight: 500;
}

.shop-product-contact-list strong,
.shop-product-sidebar-cats li a,
.shop-product-sidebar-cats li > span {
  font-weight: 600;
}

.shop-product-sidebar-cta {
  min-height: 42px;
  border-radius: var(--shop-radius-sm);
  background: var(--liuer-accent);
  font-weight: 700;
  text-transform: none;
  box-shadow: none;
}

.shop-product-sidebar-cats ul {
  gap: 4px;
}

.shop-product-sidebar-cats li a,
.shop-product-sidebar-cats li > span {
  min-height: 38px;
}


