/* ==========================================================================
   SINGLE PRODUCT
   ========================================================================== */

.vw-product {
  --vw-product-surface: #f4f1e8;
  --vw-product-card-gap: 0.625rem;
  --vw-product-control-size: var(--slider-nav-size);

  position: relative;
  overflow: clip;
  color: var(--color-text);
  background: var(--color-background);
}

.vw-product a {
  color: var(--color-heading);
}

.vw-product a:hover {
  color: var(--color-muted);
}

.vw-product-hero {
  padding-block: 2.125rem 3.75rem;
}

.vw-product-hero-grid {
  row-gap: 2rem;
}

/* --------------------------------------------------------------------------
   Product media
   -------------------------------------------------------------------------- */

.vw-product-media {
  position: relative;
  display: grid;
  min-height: 37.0625rem;
  overflow: hidden;
  background: var(--vw-product-surface);
}

.vw-product-media-image {
  display: grid;
  place-items: center;
  min-width: 0;
  height: 100%;
  padding: 1rem 1.25rem;
}

.vw-product-main-image,
.woocommerce .vw-product-main-image {
  width: 100%;
  height: 100%;
  max-height: 34.5rem;
  padding: 0;
  object-fit: contain;
  cursor: default;
}

.vw-product-award-badge {
  position: absolute;
  z-index: 2;
  top: 10px;
  left: 10px;
  width: 80px;
  height: 80px;
  object-fit: contain;
}

.vw-product-expand,
.vw-product-modal-close {
  min-height: 0;
  padding: 0;
  border: 1px solid var(--color-text);
  border-radius: 50%;
  color: var(--color-text);
  /*background: var(--color-background);*/
}

.vw-product-expand {
  position: absolute;
  z-index: 3;
  top: 0.625rem;
  right: 0.625rem;
  width: var(--vw-product-control-size);
  height: var(--vw-product-control-size);
  font-size: 1.125rem;
}

.vw-product-expand:hover {
  color: var(--color-heading);
  border-color: var(--color-heading);
 
}

.vw-product-kickers {
  display: flex;
  gap: 10px;
  flex-direction: row;
  flex-wrap: wrap;
  
}


/* --------------------------------------------------------------------------
   Product summary
   -------------------------------------------------------------------------- */


a.vw-product-kicker,
a.vw-product-detail-pill {
  display: inline-flex;
  align-items: center;
  min-height: 1.25rem;
  padding-inline: 0.6875rem;
  color: var(--color-text);
  background: var(--vw-product-surface);
  font-size: 0.875rem;
  font-weight: var(--font-weight-regular);
  line-height: 1;
  text-transform: uppercase;
  text-decoration: none;
}

a.vw-product-kicker:hover,
a.vw-product-detail-pill:hover {
  color: var(--color-muted);
}

.vw-product-title {
  max-width: 35.5rem;
  margin-block: 2rem 2.125rem;
  font-size: 3rem;
  line-height: 1.25;
}

.vw-product-details {
  display: grid;
  gap: 10px;
  margin: 0;
}

.vw-product-detail-row {
  display: grid;
  grid-template-columns: 6.25rem minmax(0, 1fr);
  gap: 0.875rem;
  align-items: start;
}

.vw-product-detail-row dt,
.vw-product-detail-row dd {
  margin: 0;
  color: var(--color-heading);
  font-size: var(--font-size-body);
  line-height: var(--line-height-list);
}

.vw-product-detail-row dt {
  font-weight: var(--font-weight-semibold);
}

.vw-product-detail-row dd {
  min-width: 0;
  color: var(--color-text);
}

.vw-product-detail-values {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
}

.vw-product-detail-awards {
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.vw-product-detail-text, .vw-product-detail-award {
  display: block;
  padding-inline: 0.6875rem;

}


.vw-product-detail-text, .vw-product-detail-award p {
  font-size: 14px;
}




.vw-product-detail-row.is-award .vw-product-detail-text {
  padding-inline: 0;
  text-transform: none;
}

.vw-product-detail-row em {
  display: block;
  color: var(--color-text);
  font-size: 0.875rem;
  line-height: 1.25rem;
}

.vw-product-price-panel {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  min-height: 3.875rem;
  margin-block-start: 3rem;
  padding: 0.625rem 1.25rem;
  background: var(--vw-product-surface);
}

.vw-product-price-wrap {
  display: flex;
  align-items: baseline;
  gap: 0.5rem;
  min-width: 0;
}

.vw-product-price {
  flex: none;
  color: var(--color-text);
  font-family: var(--font-family-heading);
  font-size: 2rem;
  font-weight: var(--font-weight-regular);
  line-height: 1.125;
  font-variation-settings: "SOFT" 0, "WONK" 1;
}

.vw-product-price .woocommerce-Price-currencySymbol {
  position: static;
  top: auto;
  margin: 0;
  font-size: 0.645em;
  vertical-align: 0.28em;
}

.vw-product-price-label {
  color: var(--color-text);
  font-size: 0.875rem;
  line-height: 1.25rem;
  white-space: nowrap;
}

.vw-product-price-label.is-unavailable {
  font-family: var(--font-family-heading);
  font-size: 1rem;
}

.vw-product-price-action, .vw-product-login-link {
  flex: none;
  font-family: var(--font-family-heading);
  font-size: 1rem;

}

.vw-product-price-panel.is-locked {
  justify-content: flex-start;
}

.vw-product-description {
  margin-block-start: 2.25rem;
  color: var(--color-text);
}

.vw-product-description > :first-child {
  margin-block-start: 0;
}

.vw-product-description p,
.vw-product-description li {
  color: var(--color-text);
  font-size: 1rem;
  line-height: 1.5;
}

.vw-product-description p + p {
  margin-block-start: 0.75rem;
}

/* --------------------------------------------------------------------------
   Brand panel
   -------------------------------------------------------------------------- */

.vw-product-brand-column {
  margin-inline-start: auto;
}

.vw-product-brand-card {
  display: grid;
  place-items: center;
  min-height: 10.375rem;
  padding: 1rem;
  background: var(--vw-product-surface);

}

.vw-product-brand-logo {
  width: 100%;
  object-fit: contain;

}

.vw-product-brand-name {
  color: var(--color-heading);
  font-family: var(--font-family-heading);
  font-size: 1.5rem;
  line-height: 1.2;
  text-align: center;
}

.vw-product-brand-links {
  display: grid;
  gap: 0.75rem;
  margin-block-start: 1.75rem;
}

.vw-product-brand-links a {
  width: fit-content;
  font-family: var(--font-family-heading);
  font-size: 1rem;
  line-height: 1.2;
}

/* --------------------------------------------------------------------------
   Upsells carousel
   -------------------------------------------------------------------------- */

.vw-product-upsells {
  padding-block: 3.5rem 6.875rem;
}

.vw-product-upsells .row {
  row-gap: 20px;
}

.vw-product-upsells-intro {
  display: flex;
  flex-direction: column;
  min-height: 32.375rem;
}

.single-product .vw-product-upsells-intro h2 {

  margin: 4rem 0 1rem;
  font-size: var(--font-size-h1);
  line-height: var(--line-height-h1);

}

.vw-product-view-brand {
  width: fit-content;
  font-family: var(--font-family-heading);
  font-size: 1rem;
  line-height: 1.2;
}

.vw-product-slider-controls {
  margin-block-start: auto;
  padding-block-end: 6.0625rem;
}


.vw-product-slider-viewport {
  overflow: hidden;
  outline: none;
}

.vw-product-slider-track {
  display: flex;
  gap: var(--vw-product-card-gap);
  width: max-content;
}

.vw-product-upsell-card {
  flex: 0 0 calc((min(66.75vw, 55.25rem) - (var(--vw-product-card-gap) * 3)) / 4);
  width: calc((min(66.75vw, 55.25rem) - (var(--vw-product-card-gap) * 3)) / 4);
  min-width: 0;
  min-height: 32.375rem;
  background: var(--vw-product-surface);
}

.vw-product-upsell-card > a {
  display: flex;
  flex-direction: column;
  height: 100%;
  padding: 0.625rem 0.625rem 1.375rem;
  text-decoration: none;
}

.vw-product-upsell-image-wrap {
  position: relative;
  display: grid;
  place-items: center;
  height: 24.75rem;
  min-height: 0;
}

.vw-product-upsell-image,
.woocommerce .vw-product-upsell-image {
  width: 100%;
  height: 100%;
  padding: 0;
  object-fit: contain;
  transition: transform 220ms ease;
}

.vw-product-upsell-card a:hover .vw-product-upsell-image {
  transform: translateY(-0.375rem);
}

.vw-product-upsell-badge {
  position: absolute;
  z-index: 2;
  top: 0.25rem;
  left: 0.75rem;
  width: 5rem;
  height: 5rem;
  object-fit: contain;
}

.vw-product-upsell-card h3 {
  margin: auto 0 0;
  padding-inline: 0.625rem;
  color: var(--color-text);
  font-family: var(--font-family-body);
  font-size: 1rem;
  font-weight: var(--font-weight-semibold);
  line-height: 1.2;
}

/* --------------------------------------------------------------------------
   Product image modal
   -------------------------------------------------------------------------- */

body.vw-product-modal-open {
  overflow: hidden;
}

.vw-product-modal {
  position: fixed;
  z-index: 999999;
  inset: 0;
  display: grid;
  place-items: center;
  padding: 2rem;
  background: #F4F1E8;
}

.vw-product-modal-dialog {
position: relative;
display: block;
place-items: center;
width: 100%;
height: calc(100vh - 4rem);

}

.vw-product-modal-dialog img {
  width: 100%;
  height: 100%;
  object-fit: contain;
}

.vw-product-modal-close {
  position: absolute;
  z-index: 2;
  top: 0;
  right: 0;
  width: var(--vw-product-control-size);
  height: var(--vw-product-control-size);
  color: var(--color-text);
  border-color: var(--color-text);

}

.vw-product-modal-close:hover {
  color: var(--color-heading);
  border-color: var(--color-heading);
}




/* ============================================================
   SINGLE PRODUCT — SAME-BRAND ARCHIVE CARD CAROUSEL
   Append this block to css/product-single.css
============================================================ */

.vw-product-brand-wines {
  --vw-brand-carousel-gap: var(--grid-column-gap);
  --vw-brand-carousel-columns: 4;
}

.vw-product-brand-wines .vw-product-upsells-slider-column {
  min-width: 0;
}

.vw-product-brand-wines .vw-product-slider-viewport {
  width: 100%;
  max-width: 100%;
  overflow: hidden;
  scroll-snap-type: x mandatory;
}

.vw-product-brand-wines .vw-product-slider-track.products {
  position: relative;
  display: flex;
  flex-flow: row nowrap;
  gap: var(--vw-brand-carousel-gap);
  align-items: stretch;

  width: 100%;
  max-width: 100%;
  margin: 0;
  padding: 0;
}

/*
 * Override any archive grid width carried by content-product.php.
 *
 * Four cards plus three gaps equal exactly 100% of the right-hand
 * eight-column area. This prevents the fourth card protruding past
 * the container.
 */
.vw-product-brand-wines .vw-product-slider-track.products > .product {
  flex: 0 0 calc(
    (
      100% -
      (
        var(--vw-brand-carousel-gap) *
        (var(--vw-brand-carousel-columns) - 1)
      )
    ) /
    var(--vw-brand-carousel-columns)
  );

  width: calc(
    (
      100% -
      (
        var(--vw-brand-carousel-gap) *
        (var(--vw-brand-carousel-columns) - 1)
      )
    ) /
    var(--vw-brand-carousel-columns)
  );

  max-width: calc(
    (
      100% -
      (
        var(--vw-brand-carousel-gap) *
        (var(--vw-brand-carousel-columns) - 1)
      )
    ) /
    var(--vw-brand-carousel-columns)
  );

  min-width: 0;
  margin: 0 !important;
  scroll-snap-align: start;
  scroll-snap-stop: always;
}

/*
 * Keep each reused archive card the same height.
 */
.vw-product-brand-wines .vw-product-slider-track.products > .product,
.vw-product-brand-wines .vw-product-slider-track.products > .product > .inner {
  height: auto;
  min-height: 100%;
}

.vw-product-brand-wines.is-static .vw-product-slider-controls {
  display: none;
}

.vw-product-brand-archive-label-mobile {
  display: none;
}

/* Tablet: two equal cards. */
@media only screen and (max-width: 61.999em) {
  .vw-product-brand-wines {
    --vw-brand-carousel-columns: 2;
  }
}


/* --------------------------------------------------------------------------
   Tablet
   -------------------------------------------------------------------------- */

@media only screen and (max-width: 74.999em) {



  .vw-product-upsell-card {
    flex-basis: calc((70vw - (var(--vw-product-card-gap) * 2)) / 3);
    width: calc((70vw - (var(--vw-product-card-gap) * 2)) / 3);
  }
}

@media only screen and (max-width: 61.999em) {
  .vw-product-hero {
    padding-block-start: 2rem;
  }

  .vw-product-media {
    min-height: 34rem;
  }

  .vw-product-title {
    font-size: 2.5rem;
  }

  .vw-product-upsells-intro {
    min-height: 0;
  }

  .vw-product-upsells-intro h2 {
    margin-block-start: 0;
  }

  .vw-product-slider-controls {
    margin-block-start: 2rem;
    padding-block-end: 0;
  }

  .vw-product-upsell-card {
    flex-basis: calc((86vw - var(--vw-product-card-gap)) / 2);
    width: calc((86vw - var(--vw-product-card-gap)) / 2);
  }
}

/* --------------------------------------------------------------------------
   Mobile
   -------------------------------------------------------------------------- */

@media only screen and (max-width: 47.999em) {
  .vw-product {
    --vw-product-control-size: 2.75rem;
  }

  .vw-product-hero {
    padding-block: 1.5rem 2rem;
  }

  .vw-product-media {
    min-height: 30rem;
  }
  
  
 .vw-product-award-badges {
   position: absolute;
   z-index: 2;
   top: 20px;
   left: 10px;
 
   display: flex;
   flex-direction: column;
   align-items: flex-start;
   gap: 0.625rem;
 
   pointer-events: none;
 }
 
 .vw-product-award-badge {
   position: static;
   display: block;
   flex: 0 0 auto;
 
   width: 70px;
   height: 70px;
 
   object-fit: contain;
 }
  
 .vw-product-main-image, .woocommerce .vw-product-main-image {
     width: 100%;
     height: 100%;
     max-height: 28rem;
     padding: 0;
     object-fit: contain;
     cursor: default;
 }

  .vw-product-title {
    margin-block: 1.5rem 1.75rem;
    font-size: 2.25rem;
    line-height: 1.111111;
  }

  .vw-product-detail-row {
    grid-template-columns: 5.75rem minmax(0, 1fr);
    gap: 0.625rem;
  }

  .vw-product-price-panel {
    align-items: flex-start;
    flex-direction: column;
    margin-block-start: 2rem;
    padding: 1rem;
    gap: 5px;
  }

  .vw-product-price-wrap {
    flex-wrap: wrap;
  }

  .vw-product-price {
    font-size: 1.75rem;
  }

  .vw-product-brand {
    grid-template-columns: 1fr;
    gap: 1.5rem;
  }

  .vw-product-upsells {
    padding-block: 1rem 4rem;
  }

  .vw-product-upsells-intro h2 {
    font-size: 2.25rem;
    line-height: 1.111111;
  }

  .vw-product-slider-controls {
    display: none;
  }

  /*
   * Same-brand carousel mobile layout:
   * 1. Two products
   * 2. Slider controls
   * 3. Brand heading and archive link
   */
  .vw-product-brand-wines {
    --vw-brand-carousel-columns: 2;
  }

  .vw-product-brand-wines .vw-product-upsells-slider-column {
    order: 1;
  }

  .vw-product-brand-wines .vw-product-upsells-intro-column {
    order: 2;
  }

  .vw-product-brand-wines .vw-product-slider-viewport {
    overflow-x: auto;
    overflow-y: hidden;
    margin-inline-end: 0;
    padding-inline-end: 0;
    scrollbar-width: none;
    scroll-snap-type: x mandatory;
    -webkit-overflow-scrolling: touch;
  }

  .vw-product-brand-wines .vw-product-slider-viewport::-webkit-scrollbar {
    display: none;
  }

  /*
   * Snap to the beginning of each two-product group.
   */
  .vw-product-brand-wines .vw-product-slider-track.products > .product {
    scroll-snap-align: none;
  }

  .vw-product-brand-wines .vw-product-slider-track.products > .product:nth-child(odd) {
    scroll-snap-align: start;
  }

  .vw-product-brand-wines-intro {
    min-height: 0;
  }

  .vw-product-brand-wines .vw-product-slider-controls {
    order: 1;
    display: flex;
    justify-content: flex-start;
    margin: 0 0 3rem;
    padding: 0;
  }

  .vw-product-brand-wines .vw-product-upsells-intro h2 {
    order: 2;
    margin: 0 0 2rem;
  }

  .vw-product-brand-wines .vw-product-upsells-intro-brand-link {
    order: 3;
  }

  .vw-product-brand-archive-label-desktop {
    display: none;
  }

  .vw-product-brand-archive-label-mobile {
    display: inline;
  }

  .vw-product-slider-viewport {
    overflow-x: auto;
    overflow-y: hidden;
    margin-inline-end: -2rem;
    padding-inline-end: 2rem;
    scrollbar-width: none;
    scroll-snap-type: x mandatory;
    -webkit-overflow-scrolling: touch;
  }

  .vw-product-slider-viewport::-webkit-scrollbar {
    display: none;
  }

  .vw-product-upsell-card {
    flex-basis: 78vw;
    width: 78vw;
    min-height: 29rem;
    scroll-snap-align: start;
  }

  .vw-product-upsell-image-wrap {
    height: 21.5rem;
  }

  .vw-product-modal {
    padding: 1rem;
  }

  .vw-product-modal-dialog {
    width: 100%;

    padding: 1rem;
  }
}

/* Finite product/wine carousel endpoint state. */
.vw-product-slider-arrow.disabled,
.vw-product-slider-arrow:disabled {
  opacity: 0.35;
  cursor: default;
  pointer-events: none;
}
