/* Generated by scripts/build-rtl.js (rtlcss). Do not edit; edit the LTR source and rebuild. */
/* RIVISTA WooCommerce single product styles
   ------------------------------------------------------------
   Template: woocommerce/single-product.php
   Layout:   breadcrumb → stage (gallery 7/12 · details 5/12, sticky:
             header, buy row, guarantees accordion, meta)
             → WooCommerce tabs → upsells → "Pair with" → sticky buy bar.
   Selectors on the stage carry `.product-stage .product-details` (or
   `.product-gallery div.woocommerce-product-gallery`) so they beat
   WooCommerce's own `.woocommerce div.product …` rules by specificity.
   ------------------------------------------------------------ */

/* ============================================================
   PAGE SHELL — same measure as the header (.shell)
   ============================================================ */
.single-product #main-content {
  max-width: var(--shell);
  margin: 0 auto;
  padding: 0 var(--pad-x) clamp(48px, 6vw, 88px);
}

/* Tablet: one centred reading column, so breadcrumb, stage, tabs and
   "Pair with" share the same left edge. */
@media (min-width: 600px) and (max-width: 899px) {
  .single-product #main-content {
    max-width: calc(640px + var(--pad-x) * 2);
  }
}

.single-product .breadcrumb {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 4px 10px;
  min-width: 0;
  padding: 26px 0 26px;
  font-family: var(--display);
  font-size: 12px;
  letter-spacing: .02em;
  color: var(--ink-3);
}

.single-product .breadcrumb a {
  color: var(--ink-3);
  transition: color var(--dur) var(--ease);
}

.single-product .breadcrumb a:hover {
  color: var(--ink);
}

.single-product .breadcrumb .sep {
  opacity: .45;
}

.single-product .breadcrumb .current {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  color: var(--ink);
}

.single-product #main-content .woocommerce-notices-wrapper {
  width: auto;
  margin: 0;
}

.single-product #main-content .woocommerce-notices-wrapper:not(:empty) {
  margin-bottom: 24px;
}

/* ============================================================
   STAGE — gallery + details
   ============================================================ */
.single-product .product-stage {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 36px;
  align-items: start;
  margin: 0;
  position: relative;
}

.single-product .product-stage > .product-gallery {
  position: relative;
  min-width: 0;
}

/* WooCommerce's layout sheet floats `div.summary` at 48% width. */
.single-product .product-stage > .product-details.summary {
  float: none;
  width: auto;
  min-width: 0;
  margin: 0;
}

@media (min-width: 900px) {
  .single-product .product-stage {
    grid-template-columns: minmax(0, 6fr) minmax(360px, 5fr);
    gap: clamp(32px, 4vw, 56px);
  }
}

/* Wide screens: a true 7/12 · 5/12 split of the shell. The gutter lives
   inside the details column (padding), so it no longer eats into the
   photograph's seven columns. */
@media (min-width: 1100px) {
  .single-product .product-stage {
    grid-template-columns: minmax(0, 7fr) minmax(460px, 5fr);
    gap: 0;
  }

  /* --pd-balance: set by the template's script when the column is shorter
     than the photograph, to centre it in the first screen. */
  .single-product .product-stage > .product-details.summary {
    margin-top: var(--pd-balance, 0px);
    padding-right: clamp(40px, 5vw, 88px);
  }
}

/* The details column follows the photograph while it scrolls by, on
   screens tall enough to show the whole column below the header. */
@media (min-width: 1100px) and (min-height: 760px) {
  .single-product .product-stage > .product-details.summary {
    position: sticky;
    top: 112px;
  }

  .admin-bar.single-product .product-stage > .product-details.summary {
    top: 144px;
  }
}

/* ============================================================
   GALLERY — WooCommerce slider / zoom / lightbox, 4:5 frame
   ============================================================ */
.single-product .product-stage .product-gallery div.woocommerce-product-gallery {
  float: none;
  width: 100%;
  margin: 0;
  position: relative;
}

.single-product .product-stage .product-gallery div.woocommerce-product-gallery .woocommerce-product-gallery__wrapper {
  margin: 0;
}

/* Flexslider translates the track by whole pixels while slides keep a
   fractional width, so a hairline of the previous photo shows at the frame
   edge. Trim one pixel on both sides (symmetric, so RTL-safe). */
.single-product .product-stage .product-gallery div.woocommerce-product-gallery .flex-viewport {
  clip-path: inset(0 1px);
}

.single-product .product-stage .product-gallery div.woocommerce-product-gallery .woocommerce-product-gallery__image {
  position: relative;
  overflow: hidden;
  background: var(--paper-2);
}

.single-product .product-stage .product-gallery div.woocommerce-product-gallery .woocommerce-product-gallery__image a {
  display: block;
}

.single-product .product-stage .product-gallery div.woocommerce-product-gallery .woocommerce-product-gallery__image img:not(.zoomImg) {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 4 / 5;
  object-fit: cover;
  object-position: center;
  margin: 0;
  background: none;
  box-shadow: none;
}

.single-product .product-stage .product-gallery div.woocommerce-product-gallery .woocommerce-product-gallery__image a:focus-visible {
  outline: 2px solid var(--ink);
  outline-offset: -4px;
}

/* Thumbnails: a neat row beneath the frame. */
.single-product .product-stage .product-gallery div.woocommerce-product-gallery .flex-control-thumbs {
  display: grid;
  grid-template-columns: repeat(6, minmax(0, 1fr));
  gap: 10px;
  margin: 12px 0 0;
  padding: 0;
  list-style: none;
  overflow: visible;
}

.single-product .product-stage .product-gallery div.woocommerce-product-gallery .flex-control-thumbs li {
  width: auto;
  float: none;
  clear: none;
  margin: 0;
}

.single-product .product-stage .product-gallery div.woocommerce-product-gallery .flex-control-thumbs li img {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 4 / 5;
  object-fit: cover;
  margin: 0;
  opacity: .5;
  outline: 1px solid transparent;
  outline-offset: 3px;
  cursor: pointer;
  transition: opacity var(--dur) var(--ease), outline-color var(--dur) var(--ease);
}

.single-product .product-stage .product-gallery div.woocommerce-product-gallery .flex-control-thumbs li img:hover {
  opacity: 1;
}

.single-product .product-stage .product-gallery div.woocommerce-product-gallery .flex-control-thumbs li img.flex-active {
  opacity: 1;
  outline-color: var(--ink);
}

/* Thumbnails are made keyboard-operable by the template's script. */
.single-product .product-stage .product-gallery div.woocommerce-product-gallery .flex-control-thumbs li img:focus-visible {
  opacity: 1;
  outline: 2px solid var(--ink);
  outline-offset: 3px;
}

/* Zoom / lightbox trigger: a small paper circle with a stroked magnifier
   (WooCommerce draws its own icon with ::before/::after; replaced here). */
.single-product .product-stage .product-gallery div.woocommerce-product-gallery .woocommerce-product-gallery__trigger {
  top: 16px;
  left: 16px;
  right: auto;
  width: 40px;
  height: 40px;
  border: 0;
  border-radius: 50%;
  background: var(--paper);
  color: var(--ink);
  box-shadow: none;
  font-size: 0;
  z-index: 5;
  transition: background var(--dur) var(--ease), color var(--dur) var(--ease), transform var(--dur) var(--ease);
}

.single-product .product-stage .product-gallery div.woocommerce-product-gallery .woocommerce-product-gallery__trigger::before {
  content: "";
  position: absolute;
  inset: 0;
  width: 18px;
  height: 18px;
  margin: auto;
  border: 0;
  border-radius: 0;
  background: currentColor;
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.7' stroke-linecap='round'%3E%3Ccircle cx='10.5' cy='10.5' r='6.5'/%3E%3Cpath d='M20 20l-4.8-4.8M10.5 8v5M8 10.5h5'/%3E%3C/svg%3E") center / contain no-repeat;
  mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.7' stroke-linecap='round'%3E%3Ccircle cx='10.5' cy='10.5' r='6.5'/%3E%3Cpath d='M20 20l-4.8-4.8M10.5 8v5M8 10.5h5'/%3E%3C/svg%3E") center / contain no-repeat;
}

.single-product .product-stage .product-gallery div.woocommerce-product-gallery .woocommerce-product-gallery__trigger::after {
  content: none;
  display: none;
}

/* WordPress swaps the trigger's magnifier emoji for an image; the mask icon replaces it. */
.single-product .product-stage .product-gallery div.woocommerce-product-gallery .woocommerce-product-gallery__trigger img.emoji {
  display: none !important;
}

.single-product .product-stage .product-gallery div.woocommerce-product-gallery .woocommerce-product-gallery__trigger:hover {
  background: var(--ink);
  color: var(--paper);
}

.single-product .product-stage .product-gallery div.woocommerce-product-gallery .woocommerce-product-gallery__trigger:focus-visible {
  outline: 2px solid var(--ink);
  outline-offset: 3px;
}

/* Sale flash: a quiet paper pill with a terracotta dot. */
.single-product .product-stage .product-gallery > span.onsale {
  position: absolute;
  top: 16px;
  right: 16px;
  z-index: 5;
  display: inline-flex;
  align-items: center;
  gap: 7px;
  min-width: 0;
  min-height: 0;
  margin: 0;
  padding: 8px 10px 8px 12px;
  border-radius: 999px;
  background: var(--paper);
  color: var(--ink);
  font-family: var(--display);
  font-size: 10.5px;
  font-weight: 600;
  letter-spacing: .14em;
  line-height: 1;
  text-transform: uppercase;
}

.single-product .product-stage .product-gallery > span.onsale::before {
  content: "";
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: var(--terra);
}

/* PhotoSwipe lightbox: WooCommerce gives it z-index 1500, below the sticky
   header. Lift it above everything while it is open. */
.single-product .pswp {
  z-index: 100000;
}

.single-product .pswp__bg {
  background: rgba(20, 19, 15, .94);
}

.single-product .pswp__caption__center {
  font-family: var(--display);
  font-size: 12px;
  letter-spacing: .06em;
  text-align: center;
}

/* ============================================================
   DETAILS COLUMN
   ============================================================ */
.single-product .product-stage .product-details .pd-header {
  margin: 0;
  padding: 0;
  border: 0;
}

.single-product .pd-eyebrow {
  display: flex;
  align-items: center;
  gap: 10px;
  margin: 0 0 18px;
  font-family: var(--display);
  font-size: 11.5px;
  font-weight: 600;
  letter-spacing: .16em;
  line-height: 1.2;
  text-transform: uppercase;
  color: var(--ink-3);
}

.single-product .pd-eyebrow::before {
  content: "";
  flex: none;
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: var(--terra);
}

.single-product .pd-eyebrow a {
  color: inherit;
  transition: color var(--dur) var(--ease);
}

.single-product .pd-eyebrow a:hover {
  color: var(--ink);
}

.single-product .product-stage .product-details .pd-title {
  margin: 0;
  padding: 0;
  font-family: var(--display);
  font-size: clamp(36px, 3.4vw, 56px);
  font-weight: 700;
  line-height: 1;
  letter-spacing: -.03em;
  color: var(--ink);
  text-wrap: balance;
}

.single-product .pd-title-variant {
  font-family: var(--serif);
  font-style: italic;
  font-weight: 400;
  letter-spacing: -.01em;
  color: var(--ink-3);
}

.single-product .pd-title::after {
  content: ".";
  color: var(--accent);
}

/* Price: current price first, struck regular price after, then the label. */
.single-product .pd-price-row {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 6px 14px;
  margin: 22px 0 0;
}

.single-product .pd-price-row .pd-price {
  display: inline-flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 2px 12px;
  font-family: var(--display);
  font-size: 26px;
  font-weight: 600;
  letter-spacing: -.02em;
  line-height: 1.1;
  color: var(--ink);
}

.single-product .pd-price-row .pd-price ins {
  order: 0;
  background: none;
  font-weight: 600;
  text-decoration: none;
}

.single-product .pd-price-row .pd-price del {
  order: 1;
  font-size: 17px;
  font-weight: 400;
  letter-spacing: 0;
  color: var(--ink-3);
  text-decoration-thickness: 1px;
}

/* Sits on the price baseline (the row aligns baselines); sized so it reads
   next to the display price rather than as a footnote. */
.single-product .pd-save {
  font-family: var(--display);
  font-size: 15px;
  font-weight: 600;
  line-height: 1.1;
  letter-spacing: 0;
  font-variant-numeric: tabular-nums;
  color: var(--accent);
}

/* "No reviews yet — write one": the review hook's quiet home. */
.single-product .pd-review-cta {
  margin: 12px 0 0;
  font-family: var(--display);
  font-size: 12.5px;
  line-height: 1.4;
  color: var(--ink-3);
}

.single-product .pd-review-cta-action {
  color: var(--ink);
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: 3px;
  transition: color var(--dur) var(--ease);
}

.single-product .pd-review-cta a:hover .pd-review-cta-action {
  color: var(--accent);
}

/* Rating (only printed once a product has reviews). */
.single-product .product-stage .product-details .pd-header .woocommerce-product-rating {
  display: flex;
  align-items: center;
  gap: 10px;
  margin: 14px 0 0;
  line-height: 1;
  font-family: var(--display);
  font-size: 12.5px;
  color: var(--ink-3);
}

.single-product .product-stage .product-details .pd-header .woocommerce-product-rating::before,
.single-product .product-stage .product-details .pd-header .woocommerce-product-rating::after {
  content: none;
  display: none;
}

.single-product .product-stage .product-details .pd-header .woocommerce-product-rating .star-rating {
  float: none;
  margin: 0;
  font-size: 13px;
  color: var(--ink);
}

.single-product .product-stage .product-details .pd-header .star-rating::before {
  color: var(--line);
}

.single-product .product-stage .product-details .pd-header .woocommerce-review-link {
  color: var(--ink-3);
  transition: color var(--dur) var(--ease);
}

.single-product .product-stage .product-details .pd-header .woocommerce-review-link:hover {
  color: var(--ink);
}

/* Short description. */
.single-product .pd-desc {
  margin: 26px 0 0;
  max-width: 34em;
  font-family: var(--serif);
  font-size: 20px;
  line-height: 1.4;
  color: var(--ink-2);
}

.single-product .pd-desc p {
  margin: 0 0 .6em;
}

.single-product .pd-desc > :last-child {
  margin-bottom: 0;
}

/* ============================================================
   BUY BOX — quantity stepper + "Add to bag" pill
   ============================================================ */
.single-product .pd-buy {
  margin: 32px 0 0;
}

.single-product .product-stage .product-details .pd-buy p.stock {
  display: flex;
  align-items: center;
  gap: 8px;
  margin: 0 0 14px;
  font-family: var(--display);
  font-size: 12.5px;
  color: var(--ink-2);
}

.single-product .product-stage .product-details .pd-buy p.stock::before {
  content: "";
  flex: none;
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: var(--leaf-1);
}

.single-product .product-stage .product-details .pd-buy p.stock.out-of-stock::before,
.single-product .product-stage .product-details .pd-buy p.stock.available-on-backorder::before {
  background: var(--terra);
}

.single-product .product-stage .product-details .pd-buy form.cart {
  margin: 0;
  padding: 0;
  border: 0;
  background: none;
}

.single-product .product-stage .product-details .pd-buy form.cart:not(.variations_form):not(.grouped_form),
.single-product .product-stage .product-details .pd-buy form.cart .woocommerce-variation-add-to-cart {
  display: flex;
  align-items: stretch;
  gap: 10px;
  width: 100%;
}

/* WooCommerce's clearfix pseudo-elements would become empty flex items and
   add a gap before the stepper and after the button. */
.single-product .product-stage .product-details .pd-buy form.cart::before,
.single-product .product-stage .product-details .pd-buy form.cart::after,
.single-product .product-stage .product-details .pd-buy form.cart .woocommerce-variation-add-to-cart::before,
.single-product .product-stage .product-details .pd-buy form.cart .woocommerce-variation-add-to-cart::after {
  content: none;
  display: none;
}

/* Quantity pill (the − / + buttons are added by the template's script). */
.single-product .product-stage .product-details .pd-buy form.cart div.quantity {
  flex: none;
  float: none;
  display: inline-flex;
  align-items: stretch;
  height: 56px;
  margin: 0;
  border: 1px solid var(--line);
  border-radius: 999px;
  background: var(--paper);
  transition: border-color var(--dur) var(--ease);
}

.single-product .product-stage .product-details .pd-buy form.cart div.quantity:hover,
.single-product .product-stage .product-details .pd-buy form.cart div.quantity:focus-within {
  border-color: var(--ink);
}

.single-product .product-stage .product-details .pd-buy form.cart div.quantity .qty {
  width: 76px;
  height: 100%;
  margin: 0;
  padding: 0;
  border: 0;
  border-radius: 999px;
  background: transparent;
  color: var(--ink);
  font-family: var(--display);
  font-size: 15px;
  font-weight: 600;
  text-align: center;
  -moz-appearance: textfield;
  appearance: textfield;
}

.single-product .product-stage .product-details .pd-buy form.cart div.quantity.pd-qty .qty {
  width: 36px;
  border-radius: 0;
}

.single-product .product-stage .product-details .pd-buy form.cart div.quantity .qty:focus {
  outline: none;
}

.single-product .product-stage .product-details .pd-buy form.cart div.quantity .qty::-webkit-outer-spin-button,
.single-product .product-stage .product-details .pd-buy form.cart div.quantity .qty::-webkit-inner-spin-button {
  -webkit-appearance: none;
  margin: 0;
}

.single-product .pd-qty-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 44px;
  padding: 0;
  border: 0;
  border-radius: 999px;
  background: none;
  color: var(--ink);
  cursor: pointer;
  transition: color var(--dur) var(--ease);
}

.single-product .pd-qty-btn svg {
  display: block;
  width: 14px;
  height: 14px;
}

.single-product .pd-qty-btn:hover {
  color: var(--accent);
}

.single-product .pd-qty-btn[aria-disabled="true"] {
  color: var(--ink-3);
  opacity: .4;
  cursor: default;
}

.single-product .pd-qty-btn:focus-visible {
  outline: 2px solid var(--ink);
  outline-offset: -6px;
}

/* The ink pill. Hover: the shared terracotta wipe (_shared.css, CRAFT LAYER II). */
.single-product .product-stage .product-details .pd-buy form.cart .single_add_to_cart_button {
  flex: 1 1 auto;
  float: none;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: auto;
  min-width: 0;
  height: 56px;
  min-height: 56px;
  margin: 0;
  padding: 0 28px;
  border: 0;
  border-radius: 999px;
  background: var(--ink);
  color: var(--paper);
  font-family: var(--display);
  font-size: 12.5px;
  font-weight: 600;
  letter-spacing: .14em;
  line-height: 1;
  text-transform: uppercase;
  white-space: nowrap;
  opacity: 1;
}

.single-product .product-stage .product-details .pd-buy form.cart .single_add_to_cart_button:hover {
  background: var(--ink);
  color: var(--paper);
}

.single-product .product-stage .product-details .pd-buy form.cart .single_add_to_cart_button:focus-visible {
  outline: 2px solid var(--ink);
  outline-offset: 3px;
}

.single-product .product-stage .product-details .pd-buy form.cart .single_add_to_cart_button.disabled,
.single-product .product-stage .product-details .pd-buy form.cart .single_add_to_cart_button:disabled {
  opacity: .35;
  cursor: not-allowed;
}

.single-product .product-stage .product-details .pd-buy form.cart .single_add_to_cart_button.disabled::before,
.single-product .product-stage .product-details .pd-buy form.cart .single_add_to_cart_button:disabled::before {
  display: none;
}

/* ---- Variable products: attribute pickers ---- */
.single-product .product-stage .product-details .pd-buy form.variations_form {
  display: block;
}

.single-product .product-stage .product-details .pd-buy form.cart table.variations {
  width: 100%;
  margin: 0 0 20px;
  border: 0;
  border-collapse: collapse;
}

.single-product .product-stage .product-details .pd-buy form.cart .variations tbody,
.single-product .product-stage .product-details .pd-buy form.cart .variations tr,
.single-product .product-stage .product-details .pd-buy form.cart .variations th,
.single-product .product-stage .product-details .pd-buy form.cart .variations td {
  display: block;
  padding: 0;
  border: 0;
  background: none;
  line-height: 1.3;
  text-align: right;
}

.single-product .product-stage .product-details .pd-buy form.cart .variations tr + tr {
  margin-top: 16px;
}

.single-product .product-stage .product-details .pd-buy form.cart .variations th.label {
  padding: 0 0 10px;
}

.single-product .product-stage .product-details .pd-buy form.cart .variations label {
  font-family: var(--display);
  font-size: 11.5px;
  font-weight: 600;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: var(--ink-3);
}

.single-product .product-stage .product-details .pd-buy form.cart .variations td.value {
  position: relative;
}

.single-product .product-stage .product-details .pd-buy form.cart .variations td.value::after {
  content: "";
  position: absolute;
  top: 21px;
  left: 22px;
  width: 7px;
  height: 7px;
  border-left: 1.5px solid var(--ink);
  border-bottom: 1.5px solid var(--ink);
  transform: rotate(-45deg);
  pointer-events: none;
}

.single-product .product-stage .product-details .pd-buy form.cart .variations select {
  display: block;
  width: 100%;
  min-width: 0;
  max-width: none;
  height: 52px;
  margin: 0;
  padding: 0 20px 0 48px;
  border: 1px solid var(--line);
  border-radius: 999px;
  background: var(--paper);
  color: var(--ink);
  font-family: var(--display);
  font-size: 14px;
  font-weight: 500;
  cursor: pointer;
  appearance: none;
  -webkit-appearance: none;
  transition: border-color var(--dur) var(--ease);
}

.single-product .product-stage .product-details .pd-buy form.cart .variations select:hover {
  border-color: var(--ink);
}

.single-product .product-stage .product-details .pd-buy form.cart .variations select:focus-visible {
  outline: 2px solid var(--ink);
  outline-offset: 2px;
  border-color: var(--ink);
}

.single-product .product-stage .product-details .pd-buy form.cart .reset_variations {
  display: inline-block;
  margin: 10px 20px 0 0;
  font-family: var(--display);
  font-size: 11px;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: var(--ink-3);
  border-bottom: 1px solid currentColor;
  text-decoration: none;
}

.single-product .product-stage .product-details .pd-buy form.cart .reset_variations:hover {
  color: var(--ink);
}

.single-product .product-stage .product-details .pd-buy form.cart .woocommerce-variation {
  margin: 0 0 16px;
}

.single-product .product-stage .product-details .pd-buy form.cart .woocommerce-variation-description p {
  margin: 0 0 10px;
  color: var(--ink-2);
  font-size: 14px;
}

.single-product .product-stage .product-details .pd-buy form.cart .woocommerce-variation-price .price {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 2px 12px;
  margin: 0 0 6px;
  font-family: var(--display);
  font-size: 20px;
  font-weight: 600;
  letter-spacing: -.02em;
  color: var(--ink);
}

.single-product .product-stage .product-details .pd-buy form.cart .woocommerce-variation-price .price ins {
  order: 0;
  background: none;
  text-decoration: none;
}

.single-product .product-stage .product-details .pd-buy form.cart .woocommerce-variation-price .price del {
  order: 1;
  font-size: 15px;
  font-weight: 400;
  color: var(--ink-3);
}

.single-product .product-stage .product-details .pd-buy form.cart .woocommerce-variation-availability p.stock {
  margin: 0;
}

/* ---- Grouped products ---- */
.single-product .product-stage .product-details .pd-buy form.grouped_form table.group_table {
  width: 100%;
  margin: 0 0 18px;
  border: 0;
  border-top: 1px solid var(--line);
  border-collapse: collapse;
}

.single-product .product-stage .product-details .pd-buy form.grouped_form .group_table td {
  padding: 12px 0 12px 8px;
  border: 0;
  border-bottom: 1px solid var(--line);
  vertical-align: middle;
  font-family: var(--display);
  font-size: 14px;
}

.single-product .product-stage .product-details .pd-buy form.grouped_form .group_table div.quantity {
  height: 44px;
}

.single-product .product-stage .product-details .pd-buy form.grouped_form .single_add_to_cart_button {
  width: 100%;
}

/* ============================================================
   GUARANTEES — a hairline accordion (native <details>)
   The promise reads in the row; the detail opens underneath.
   ============================================================ */
.single-product .product-stage .product-details .pd-notes {
  margin: 32px 0 0;
  padding: 0;
  border-top: 1px solid var(--line);
}

.single-product .product-stage .product-details .pd-note {
  margin: 0;
  padding: 0;
  border: 0;
  border-bottom: 1px solid var(--line);
}

.single-product .product-stage .product-details .pd-note-summary {
  display: flex;
  align-items: center;
  gap: 12px;
  min-height: 54px;
  margin: 0;
  padding: 14px 0;
  font-family: var(--display);
  font-size: 13.5px;
  font-weight: 500;
  line-height: 1.3;
  letter-spacing: 0;
  color: var(--ink);
  list-style: none;
}

.single-product .product-stage .product-details summary.pd-note-summary {
  cursor: pointer;
}

.single-product .product-stage .product-details summary.pd-note-summary::-webkit-details-marker {
  display: none;
}

.single-product .product-stage .product-details .pd-note-summary .cf-ico {
  flex: none;
  width: 18px;
  height: 18px;
  color: var(--ink);
}

.single-product .pd-note-title {
  flex: 1 1 auto;
  min-width: 0;
}

/* Plus that folds into a minus when the row is open. */
.single-product .pd-note-toggle {
  position: relative;
  flex: none;
  width: 12px;
  height: 12px;
  color: var(--ink-3);
  transition: color var(--dur) var(--ease);
}

.single-product .pd-note-toggle::before,
.single-product .pd-note-toggle::after {
  content: "";
  position: absolute;
  top: 5px;
  right: 0;
  width: 12px;
  height: 1.5px;
  border-radius: 1px;
  background: currentColor;
  transition: transform var(--dur) var(--ease);
}

.single-product .pd-note-toggle::after {
  transform: rotate(-90deg);
}

.single-product .pd-note[open] .pd-note-toggle::after {
  transform: rotate(0deg);
}

.single-product summary.pd-note-summary:hover .pd-note-toggle,
.single-product .pd-note[open] .pd-note-toggle {
  color: var(--accent);
}

.single-product .product-stage .product-details summary.pd-note-summary:focus-visible {
  outline: 2px solid var(--ink);
  outline-offset: 2px;
  border-radius: 2px;
}

/* Body text lines up under the row title (icon 18px + 12px gap). */
.single-product .pd-note-body {
  padding: 0 30px 20px 24px;
}

.single-product .pd-note-body p {
  margin: 0;
  max-width: 38em;
  font-size: 14px;
  line-height: 1.6;
  color: var(--ink-2);
}

.single-product .pd-note-link {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  margin: 12px 0 0;
  padding-bottom: 4px;
  border-bottom: 1px solid currentColor;
  font-family: var(--display);
  font-size: 11px;
  font-weight: 600;
  letter-spacing: .14em;
  line-height: 1.2;
  text-transform: uppercase;
  color: var(--ink);
  transition: color var(--dur) var(--ease);
}

.single-product .pd-note-link svg {
  flex: none;
  width: 14px;
  height: 14px;
  transition: transform var(--dur) var(--ease);
}

.single-product .pd-note-link:hover {
  color: var(--accent);
}

.single-product .pd-note-link:hover svg {
  transform: translateX(-3px);
}

.single-product .pd-note-link svg { transform: scaleX(-1); }

.single-product .pd-note-link:hover svg { transform: translateX(-3px) scaleX(-1); }

/* Opening and closing glide where the browser can animate <details>. */
@media (prefers-reduced-motion: no-preference) {
  .single-product .pd-note {
    interpolate-size: allow-keywords;
  }

  .single-product .pd-note::details-content {
    block-size: 0;
    overflow: hidden;
    transition: block-size var(--dur) var(--ease), content-visibility var(--dur) allow-discrete;
  }

  .single-product .pd-note[open]::details-content {
    block-size: auto;
  }
}

/* ============================================================
   META — SKU / categories / tags
   ============================================================ */
.single-product .product-stage .product-details .pd-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 6px 22px;
  margin: 20px 0 0;
  padding: 0;
  border: 0;
  font-family: var(--display);
  font-size: 11px;
  font-weight: 500;
  letter-spacing: .14em;
  line-height: 1.5;
  text-transform: uppercase;
  color: var(--ink-3);
}

.single-product .product-stage .product-details .pd-meta a,
.single-product .product-stage .product-details .pd-meta .sku {
  color: var(--ink-2);
  transition: color var(--dur) var(--ease);
}

.single-product .product-stage .product-details .pd-meta a:hover {
  color: var(--ink);
}

/* Shared keyboard focus for links in the details column. */
.single-product .product-details a:focus-visible,
.single-product .breadcrumb a:focus-visible {
  outline: 2px solid var(--ink);
  outline-offset: 3px;
  border-radius: 2px;
}

/* ============================================================
   STICKY ADD-TO-CART BAR (markup: this template; base: commerce.css)
   ============================================================ */
.single-product .cf-sticky {
  box-shadow: none;
}

.single-product .cf-sticky-inner {
  max-width: var(--shell);
  padding: 10px var(--pad-x);
  padding-bottom: calc(10px + env(safe-area-inset-bottom, 0px));
}

.single-product .cf-sticky-img {
  border-radius: 0;
}

/* Once the buy box has scrolled away the bar docks over the end of the
   page: keep the footer's last line clear of it. (With compare items,
   commerce.css reserves --cf-cbar-space in the same place.) */
body.single-product:not(.has-compare-bar) .footer::after {
  content: "";
  display: block;
  height: 88px;
}

/* Phones and small tablets: the product page's bottom edge belongs to the
   sticky buy bar, so the compare tray stays out of the way here (it is
   still on the shop, the wishlist and the compare page). Only the buy
   bar's height is reserved at the end of the page. */
@media (max-width: 767px) {
  body.single-product .cf-cbar {
    display: none;
  }

  body.single-product.has-compare-bar,
  body.single-product.has-compare-bar.has-sticky-atc {
    --cf-cbar-space: 88px;
  }
}

.single-product .cf-sticky-name {
  font-weight: 600;
}

.single-product .cf-sticky-price del {
  margin-left: 6px;
  color: var(--ink-3);
}

.single-product .cf-sticky-price ins {
  background: none;
  text-decoration: none;
}

.single-product .cf-sticky-btn {
  min-height: 48px;
  padding: 0 30px;
  border-radius: 999px;
  font-size: 12px;
  letter-spacing: .14em;
}

.single-product .cf-sticky-btn:focus-visible {
  outline: 2px solid var(--ink);
  outline-offset: 3px;
}

/* ============================================================
   TABS — description / additional information / reviews
   ============================================================ */
.single-product .woocommerce-tabs {
  margin: clamp(56px, 6vw, 88px) 0 0;
  padding: 0;
}

.single-product .woocommerce-tabs ul.tabs {
  display: flex;
  justify-content: flex-start;
  gap: 36px;
  margin: 0 0 36px;
  padding: 0;
  list-style: none;
  border-bottom: 1px solid var(--line);
  overflow: visible;
}

.single-product .woocommerce-tabs ul.tabs::before,
.single-product .woocommerce-tabs ul.tabs::after,
.single-product .woocommerce-tabs ul.tabs li::before,
.single-product .woocommerce-tabs ul.tabs li::after {
  content: none;
  display: none;
}

.single-product .woocommerce-tabs ul.tabs li {
  flex: none;
  margin: 0;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: none;
}

.single-product .woocommerce-tabs ul.tabs li a {
  display: block;
  padding: 0 0 14px;
  border-bottom: 2px solid transparent;
  font-family: var(--display);
  font-size: 15px;
  font-weight: 500;
  letter-spacing: -.005em;
  white-space: nowrap;
  color: var(--ink-3);
  transition: color var(--dur) var(--ease), border-color var(--dur) var(--ease);
}

.single-product .woocommerce-tabs ul.tabs li a:hover {
  color: var(--ink);
}

.single-product .woocommerce-tabs ul.tabs li.active a {
  color: var(--ink);
  border-bottom-color: var(--terra);
}

.single-product .woocommerce-tabs ul.tabs li a:focus-visible {
  outline: 2px solid var(--ink);
  outline-offset: 4px;
  border-radius: 2px;
}

.single-product .woocommerce-tabs .panel {
  max-width: 720px;
  margin: 0;
  padding: 0;
  color: var(--ink-2);
  font-size: 16px;
  line-height: 1.75;
}

.single-product .woocommerce-tabs .panel > :first-child {
  margin-top: 0;
}

.single-product .woocommerce-tabs .panel p {
  margin: 0 0 1em;
}

.single-product .woocommerce-tabs .panel > :last-child {
  margin-bottom: 0;
}

/* Description: editorial text. The lead paragraph is set in the serif
   (the template leaves out paragraphs that repeat the short description). */
.single-product .woocommerce-tabs .woocommerce-Tabs-panel--description > p:first-child {
  margin-bottom: .7em;
  font-family: var(--serif);
  font-size: clamp(22px, 2.1vw, 28px);
  line-height: 1.3;
  letter-spacing: -.005em;
  color: var(--ink);
  text-wrap: pretty;
}

.single-product .woocommerce-tabs .panel a {
  color: var(--ink);
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: 3px;
}

.single-product .woocommerce-tabs .panel a:focus-visible {
  outline: 2px solid var(--ink);
  outline-offset: 2px;
}

.single-product .woocommerce-tabs .panel > h2 {
  margin: 0 0 16px;
  font-family: var(--display);
  font-size: 22px;
  font-weight: 600;
  letter-spacing: -.02em;
  color: var(--ink);
}

.single-product .woocommerce-tabs table.woocommerce-product-attributes {
  width: 100%;
  margin: 0;
  border: 0;
  border-top: 1px solid var(--line);
  border-collapse: collapse;
}

.single-product .woocommerce-tabs table.woocommerce-product-attributes th,
.single-product .woocommerce-tabs table.woocommerce-product-attributes td {
  padding: 14px 0;
  border: 0;
  border-bottom: 1px solid var(--line);
  background: none;
  font-size: 14px;
  font-style: normal;
  text-align: right;
  vertical-align: top;
}

.single-product .woocommerce-tabs table.woocommerce-product-attributes th {
  width: 200px;
  padding-left: 24px;
  font-family: var(--display);
  font-size: 11px;
  font-weight: 600;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: var(--ink-3);
}

.single-product .woocommerce-tabs table.woocommerce-product-attributes td p {
  margin: 0;
}

/* ---- Reviews ---- */
.single-product .woocommerce-tabs #reviews #comments h2.woocommerce-Reviews-title,
.single-product .woocommerce-tabs #reviews #review_form #respond .comment-reply-title {
  display: block;
  margin: 0 0 14px;
  font-family: var(--display);
  font-size: 20px;
  font-weight: 600;
  line-height: 1.25;
  letter-spacing: -.015em;
  color: var(--ink);
}

.single-product .woocommerce-tabs #reviews .woocommerce-noreviews {
  margin: 0 0 36px;
  font-family: var(--serif);
  font-style: italic;
  font-size: 19px;
  color: var(--ink-3);
}

.single-product .woocommerce-tabs #reviews #comments ol.commentlist {
  list-style: none;
  margin: 0 0 40px;
  padding: 0;
  background: none;
}

.single-product .woocommerce-tabs #reviews #comments ol.commentlist li {
  margin: 0;
  padding: 22px 0;
  border: 0;
  border-bottom: 1px solid var(--line);
  background: none;
}

.single-product .woocommerce-tabs #reviews #comments ol.commentlist li .comment_container {
  display: flex;
  gap: 16px;
}

.single-product .woocommerce-tabs #reviews #comments ol.commentlist li .comment_container img.avatar {
  position: static;
  float: none;
  flex-shrink: 0;
  width: 44px;
  height: 44px;
  margin: 0;
  padding: 0;
  border: 0;
  border-radius: 50%;
  background: var(--paper-2);
  box-shadow: none;
}

.single-product .woocommerce-tabs #reviews #comments ol.commentlist li .comment_container .comment-text {
  flex: 1;
  margin: 0;
  padding: 0;
  border: 0;
  border-radius: 0;
}

.single-product .woocommerce-tabs #reviews #comments ol.commentlist li .comment_container .comment-text p {
  margin: 0 0 8px;
}

.single-product .woocommerce-tabs #reviews #comments ol.commentlist li .comment_container .comment-text p.meta {
  margin: 0 0 6px;
  font-family: var(--display);
  font-size: 12px;
  color: var(--ink-3);
}

.single-product .woocommerce-tabs #reviews #comments ol.commentlist li .comment_container .comment-text p.meta strong {
  color: var(--ink);
  font-weight: 600;
}

.single-product .woocommerce-tabs #reviews #comments ol.commentlist li .comment_container .comment-text .woocommerce-review__verified {
  font-style: normal;
  color: var(--ink-3);
}

.single-product .woocommerce-tabs #reviews #comments ol.commentlist li .comment_container .comment-text .star-rating {
  float: none;
  margin: 0 0 8px;
  color: var(--ink);
}

.single-product .woocommerce-tabs #reviews .star-rating::before {
  color: var(--line);
}

.single-product .woocommerce-tabs #reviews #comments ol.commentlist li .comment_container .comment-text .description {
  color: var(--ink-2);
  line-height: 1.65;
}

.single-product .woocommerce-tabs #reviews #comments ol.commentlist li .comment_container .comment-text .description p:last-child {
  margin-bottom: 0;
}

.single-product .woocommerce-tabs #reviews #review_form #respond {
  max-width: 560px;
}

.single-product .woocommerce-tabs #reviews #review_form #respond p {
  margin: 0 0 16px;
}

.single-product .woocommerce-tabs #reviews #review_form #respond .comment-notes {
  font-size: 14px;
  color: var(--ink-3);
}

.single-product .woocommerce-tabs #reviews #review_form #respond label {
  display: block;
  margin: 0 0 8px;
  font-family: var(--display);
  font-size: 11px;
  font-weight: 600;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: var(--ink-3);
}

.single-product .woocommerce-tabs #reviews #review_form #respond .comment-form-rating {
  margin: 0 0 16px;
}

.single-product .woocommerce-tabs #reviews #review_form #respond .comment-form-rating p.stars {
  margin: 0;
}

.single-product .woocommerce-tabs #reviews #review_form #respond .comment-form-rating p.stars a {
  color: var(--ink);
}

.single-product .woocommerce-tabs #reviews #review_form #respond .comment-form-rating p.stars a:focus-visible {
  outline: 2px solid var(--ink);
  outline-offset: 2px;
}

.single-product .woocommerce-tabs #reviews #review_form #respond textarea,
.single-product .woocommerce-tabs #reviews #review_form #respond input[type="text"],
.single-product .woocommerce-tabs #reviews #review_form #respond input[type="email"] {
  box-sizing: border-box;
  width: 100%;
  padding: 14px 16px;
  border: 1px solid var(--line);
  border-radius: 0;
  background: var(--paper);
  color: var(--ink);
  font: inherit;
  font-size: 15px;
  transition: border-color var(--dur) var(--ease);
}

.single-product .woocommerce-tabs #reviews #review_form #respond textarea:hover,
.single-product .woocommerce-tabs #reviews #review_form #respond input[type="text"]:hover,
.single-product .woocommerce-tabs #reviews #review_form #respond input[type="email"]:hover {
  border-color: var(--ink-3);
}

.single-product .woocommerce-tabs #reviews #review_form #respond textarea:focus-visible,
.single-product .woocommerce-tabs #reviews #review_form #respond input:focus-visible {
  outline: 2px solid var(--ink);
  outline-offset: 2px;
  border-color: var(--ink);
}

.single-product .woocommerce-tabs #reviews #review_form #respond .comment-form-cookies-consent {
  display: flex;
  align-items: flex-start;
  gap: 10px;
}

.single-product .woocommerce-tabs #reviews #review_form #respond .comment-form-cookies-consent input {
  margin: 3px 0 0;
  accent-color: var(--ink);
}

.single-product .woocommerce-tabs #reviews #review_form #respond .comment-form-cookies-consent label {
  margin: 0;
  font-family: var(--sans);
  font-size: 13px;
  font-weight: 400;
  letter-spacing: 0;
  text-transform: none;
  color: var(--ink-2);
}

.single-product .woocommerce-tabs #reviews #review_form #respond input#submit {
  min-height: 52px;
  padding: 0 32px;
  border: 0;
  border-radius: 999px;
  background: var(--ink);
  color: var(--paper);
  font-family: var(--display);
  font-size: 12px;
  font-weight: 600;
  letter-spacing: .14em;
  line-height: 1;
  text-transform: uppercase;
  cursor: pointer;
  transition: background var(--dur) var(--ease);
}

.single-product .woocommerce-tabs #reviews #review_form #respond input#submit:hover {
  background: var(--terra);
  color: var(--paper);
}

.single-product .woocommerce-tabs #reviews #review_form #respond input#submit:focus-visible {
  outline: 2px solid var(--ink);
  outline-offset: 3px;
}

/* ============================================================
   UPSELLS + "PAIR WITH" — one section heading style
   ============================================================ */
.single-product .up-sells.products {
  margin: clamp(56px, 6vw, 88px) 0 0;
}

.single-product .related-products {
  margin: clamp(56px, 6vw, 88px) 0 0;
  padding: clamp(40px, 4.5vw, 64px) 0 0;
  border-top: 1px solid var(--line);
}

.single-product .rp-head {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 24px;
  margin: 0 0 clamp(28px, 3vw, 44px);
}

.single-product .rp-head h2,
.single-product .up-sells.products > h2 {
  margin: 0;
  font-family: var(--display);
  font-size: clamp(32px, 3.4vw, 52px);
  font-weight: 700;
  line-height: 1;
  letter-spacing: -.03em;
  color: var(--ink);
}

.single-product .up-sells.products > h2 {
  margin-bottom: clamp(28px, 3vw, 44px);
}

.single-product .rp-head h2::after,
.single-product .up-sells.products > h2::after {
  content: ".";
  color: var(--accent);
}

.single-product .rp-head .view-all {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  flex: none;
  padding-bottom: 5px;
  border-bottom: 1px solid var(--ink);
  font-family: var(--display);
  font-size: 12px;
  font-weight: 600;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: var(--ink);
  transition: color var(--dur) var(--ease), border-color var(--dur) var(--ease);
}

.single-product .rp-head .view-all svg {
  width: 14px;
  height: 14px;
  transition: transform var(--dur) var(--ease);
}

.single-product .rp-head .view-all:hover {
  color: var(--accent);
  border-color: var(--terra);
}

.single-product .rp-head .view-all:hover svg {
  transform: translateX(-3px);
}

.single-product .rp-head .view-all:focus-visible {
  outline: 2px solid var(--ink);
  outline-offset: 4px;
}

/* Grids only: the cards themselves are styled with the shop's card
   component (content-product.php), so they match the archive. */
.single-product .related-products .shop-grid ul.products,
.single-product .up-sells.products ul.products {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 56px 24px; /* the shop grid's rhythm (woocommerce-archive.css) */
  width: 100%;
  margin: 0;
  padding: 0;
  list-style: none;
}

.single-product .related-products .shop-grid ul.products::before,
.single-product .related-products .shop-grid ul.products::after,
.single-product .up-sells.products ul.products::before,
.single-product .up-sells.products ul.products::after {
  content: none;
  display: none;
}

.single-product .related-products .shop-grid ul.products li.product,
.single-product .up-sells.products ul.products li.product {
  float: none;
  clear: none;
  width: auto;
  min-width: 0;
  margin: 0;
  padding: 0;
}

/* Touch screens: at rest the photographs read as they do on desktop — only
   a saved wishlist heart sits on the photo — and quick add becomes a small
   hairline "+" in the caption instead of a disc over every image. */
@media (hover: none) {
  .single-product .related-products .custom-grid-card .cf-cbtn:not([data-cf-wishlist].is-active),
  .single-product .up-sells.products .custom-grid-card .cf-cbtn:not([data-cf-wishlist].is-active) {
    display: none;
  }

  .single-product .related-products .cgc-shell .cgc-quick-add,
  .single-product .up-sells.products .cgc-shell .cgc-quick-add {
    grid-area: 2 / 1;
    align-self: start;
    justify-self: end;
    margin: 8px 0 0;
  }

  .single-product .related-products .cgc-shell .cgc-title-row,
  .single-product .up-sells.products .cgc-shell .cgc-title-row {
    padding-left: 44px;
  }

  .single-product .related-products .cgc-shell .cgc-quick-add .button,
  .single-product .up-sells.products .cgc-shell .cgc-quick-add .button {
    width: 32px;
    height: 32px;
    min-height: 32px;
    border: 1px solid var(--line);
    background: transparent;
    color: var(--ink);
  }

  .single-product .related-products .cgc-shell .cgc-quick-add .button:hover,
  .single-product .related-products .cgc-shell .cgc-quick-add .button:active,
  .single-product .up-sells.products .cgc-shell .cgc-quick-add .button:hover,
  .single-product .up-sells.products .cgc-shell .cgc-quick-add .button:active {
    border-color: var(--ink);
    background: transparent;
    color: var(--ink);
  }

  .single-product .related-products .cgc-shell .cgc-quick-add .cgc-add-icon,
  .single-product .up-sells.products .cgc-shell .cgc-quick-add .cgc-add-icon {
    width: 14px;
    height: 14px;
  }
}

/* Phones: the name takes the full caption width (two lines); the "+" sits
   beside the price and category below it. */
@media (hover: none) and (max-width: 640px) {
  .single-product .related-products .cgc-shell .cgc-quick-add,
  .single-product .up-sells.products .cgc-shell .cgc-quick-add {
    align-self: end;
    margin: 0;
  }

  .single-product .related-products .cgc-shell .cgc-title-row,
  .single-product .up-sells.products .cgc-shell .cgc-title-row {
    padding-left: 0;
  }

  .single-product .related-products .cgc-shell .cgc-price,
  .single-product .related-products .cgc-shell .cgc-meta-row,
  .single-product .up-sells.products .cgc-shell .cgc-price,
  .single-product .up-sells.products .cgc-shell .cgc-meta-row {
    padding-left: 40px;
  }
}

/* ============================================================
   RESPONSIVE
   ============================================================ */
@media (max-width: 1199px) {
  .single-product .related-products .shop-grid ul.products,
  .single-product .up-sells.products ul.products {
    gap: 48px 20px;
  }
}

@media (max-width: 899px) {
  .single-product .related-products .shop-grid ul.products,
  .single-product .up-sells.products ul.products {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 44px 16px;
  }
}

@media (max-width: 640px) {
  .single-product .related-products .shop-grid ul.products,
  .single-product .up-sells.products ul.products {
    gap: 36px 12px;
  }
}

@media (max-width: 599px) {
  .single-product .breadcrumb {
    flex-wrap: nowrap;
    padding: 16px 0 18px;
    font-size: 11.5px;
  }

  .single-product .breadcrumb > * {
    flex: none;
  }

  .single-product .breadcrumb .current {
    flex: 0 1 auto;
  }

  .single-product .product-stage {
    gap: 28px;
  }

  /* Gallery runs edge to edge; thumbnails keep the page gutter. */
  .single-product .product-stage > .product-gallery {
    margin-inline: calc(var(--pad-x) * -1);
  }

  .single-product .product-stage .product-gallery div.woocommerce-product-gallery .flex-control-thumbs {
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 8px;
    padding-inline: var(--pad-x);
  }

  .single-product .product-stage .product-gallery div.woocommerce-product-gallery .woocommerce-product-gallery__trigger {
    top: 14px;
    left: 14px;
  }

  .single-product .product-stage .product-gallery > span.onsale {
    top: 14px;
    right: 14px;
  }

  .single-product .product-stage .product-details .pd-title {
    font-size: 34px;
  }

  .single-product .pd-eyebrow {
    margin-bottom: 14px;
  }

  .single-product .pd-price-row {
    margin-top: 16px;
  }

  .single-product .pd-price-row .pd-price {
    font-size: 23px;
  }

  .single-product .pd-desc {
    margin-top: 20px;
    font-size: 19px;
  }

  .single-product .pd-buy {
    margin-top: 26px;
  }

  .single-product .product-stage .product-details .pd-notes {
    margin-top: 28px;
  }

  .single-product .product-stage .product-details .pd-note-summary {
    min-height: 50px;
    padding: 12px 0;
  }

  .single-product .pd-note-body {
    padding-left: 0;
  }

  .single-product .product-stage .product-details .pd-buy form.cart div.quantity,
  .single-product .product-stage .product-details .pd-buy form.cart .single_add_to_cart_button {
    height: 52px;
    min-height: 52px;
  }

  .single-product .product-stage .product-details .pd-buy form.cart .single_add_to_cart_button {
    padding: 0 18px;
  }

  .single-product .pd-qty-btn {
    width: 40px;
  }

  .single-product .woocommerce-tabs ul.tabs {
    gap: 28px;
    margin-inline: calc(var(--pad-x) * -1);
    margin-bottom: 28px;
    padding-inline: var(--pad-x);
    overflow-x: auto;
    scrollbar-width: none;
  }

  .single-product .woocommerce-tabs ul.tabs::-webkit-scrollbar {
    display: none;
  }

  .single-product .woocommerce-tabs ul.tabs li a:focus-visible {
    outline-offset: -2px;
  }

  .single-product .woocommerce-tabs .panel {
    font-size: 15px;
  }

  .single-product .woocommerce-tabs table.woocommerce-product-attributes th {
    width: 120px;
    padding-left: 14px;
  }

  .single-product .rp-head {
    align-items: flex-end;
  }
}

@media (max-width: 360px) {
  .single-product .product-stage .product-details .pd-buy form.cart:not(.variations_form):not(.grouped_form),
  .single-product .product-stage .product-details .pd-buy form.cart .woocommerce-variation-add-to-cart {
    flex-wrap: wrap;
  }

  .single-product .product-stage .product-details .pd-buy form.cart .single_add_to_cart_button {
    flex-basis: 100%;
  }
}

@media (prefers-reduced-motion: reduce) {
  .single-product .breadcrumb a,
  .single-product .pd-eyebrow a,
  .single-product .pd-qty-btn,
  .single-product .product-stage .product-details .pd-buy form.cart div.quantity,
  .single-product .product-stage .product-details .pd-meta a,
  .single-product .product-stage .product-details .pd-header .woocommerce-review-link,
  .single-product .product-stage .product-details .pd-buy form.cart .variations select,
  .single-product .product-stage .product-gallery div.woocommerce-product-gallery .woocommerce-product-gallery__trigger,
  .single-product .product-stage .product-gallery div.woocommerce-product-gallery .flex-control-thumbs li img,
  .single-product .woocommerce-tabs ul.tabs li a,
  .single-product .woocommerce-tabs #reviews #review_form #respond textarea,
  .single-product .woocommerce-tabs #reviews #review_form #respond input,
  .single-product .rp-head .view-all,
  .single-product .rp-head .view-all svg,
  .single-product .pd-review-cta-action,
  .single-product .pd-note-toggle,
  .single-product .pd-note-toggle::before,
  .single-product .pd-note-toggle::after,
  .single-product .pd-note-link,
  .single-product .pd-note-link svg {
    transition: none;
  }

  .single-product .rp-head .view-all:hover svg,
  .single-product .pd-note-link:hover svg {
    transform: none;
  }
}

@media (prefers-reduced-motion: reduce) {
  .single-product .pd-note-link:hover svg { transform: scaleX(-1); }
}
