/* The existing drawer owns responsive width, focus and its close control. */
#product-info-reviews:has(.product-info-links__reviews [data-bv-show="reviews"]) {
  .product-info-drawer__content {
    padding-block-end: var(--ceres_life-review-panel-bottom-space);
  }
}

/* Hide the "Most Helpful Favorable/Critical Review" highlight cards. The
 * wrapper itself carries no stable hook, but each highlighted review's
 * permalink section keeps a `-helpful` id suffix regardless of deployment,
 * so target the direct child of the maincontainer that holds one. */
.product-info-links__reviews
  #bv_review_maincontainer
  > div:has(section[id$='-helpful']) {
  display: none !important;
}

/* The Ceres V2 widget renders in light DOM. Use vendor IDs, schema.org and
 * data-bv-v hooks: generated styled-component class names change on deployment.
 * Important declarations override Bazaarvoice's own important reset. */
.product-info-links__reviews #bv_review_maincontainer {
  color: var(--ceres_life-review-text) !important;
  background: var(--ceres_life-review-surface) !important;
  font-family: var(--ceres_life-review-font-family) !important;
  font-size: var(--ceres_life-review-body-size) !important;
  font-weight: var(--ceres_life-review-font-weight) !important;
  line-height: var(--ceres_life-review-body-leading) !important;
  letter-spacing: var(--ceres_life-review-body-tracking) !important;

  :where(div, section, span, p, button, a, h2, h3, li, abbr) {
    color: inherit !important;
    font-family: inherit !important;
    font-size: inherit !important;
    font-weight: inherit !important;
    line-height: inherit !important;
    letter-spacing: inherit !important;
    text-transform: none !important;
  }

  :where(button, [role="button"], [role="combobox"]):focus-visible {
    outline: var(--style-border-width) solid var(--ceres_life-border-focus) !important;
    outline-offset: var(--padding-3xs) !important;
  }

  /* The drawer already supplies the accessible Reviews heading. */
  > div:has(> h2) {
    display: none !important;
  }

  > div,
  > section {
    padding: 0 !important;
    margin: 0 !important;
    border: 0 !important;
    background: transparent !important;
  }

  abbr:has(> svg) {
    display: inline-flex !important;
    align-items: center !important;
    gap: 0 !important;
    padding: 0 !important;
    margin: 0 !important;
    border: 0 !important;
  }

  abbr > svg {
    display: inline-block !important;
    width: var(--ceres_life-review-star-size) !important;
    height: var(--ceres_life-review-star-size) !important;
    margin: 0 !important;
  }

  abbr > svg stop:first-child {
    stop-color: var(--ceres_life-review-meter-filled) !important;
  }
  abbr > svg stop:last-child {
    stop-color: var(--ceres_life-review-meter-empty) !important;
  }

  #bv-reviews-overall-ratings-container {
    min-height: 0 !important;
    padding: 0 !important;
    margin: 0 !important;

    > h3 {
      display: none !important;
    }
    > div {
      padding: 0 !important;
      margin: 0 !important;
    }
    [itemscope] {
      display: flex !important;
      align-items: center !important;
      gap: var(--padding-4xl) !important;
      margin: 0 !important;
    }
    [itemscope] > div {
      padding: 0 !important;
      margin: 0 !important;
      min-width: 0 !important;
      height: auto !important;
      font-family: var(--ceres_life-review-heading-family) !important;
      font-weight: var(--ceres_life-review-heading-weight) !important;
      font-size: var(--ceres_life-review-summary-size) !important;
      line-height: var(--ceres_life-review-summary-leading) !important;
      letter-spacing: var(--ceres_life-review-summary-tracking) !important;
    }
    button {
      padding: 0 !important;
      margin: 0 !important;
      background: transparent !important;
    }
    button > div {
      padding: 0 !important;
      margin: 0 !important;
      display: flex !important;
      flex-direction: column !important;
      align-items: flex-start !important;
    }
    [itemscope] + div {
      font-size: var(--ceres_life-review-meta-size) !important;
      line-height: var(--ceres_life-review-meta-leading) !important;
      letter-spacing: var(--ceres_life-review-meta-tracking) !important;
      padding: 0 !important;
      margin: 0 !important;
    }
  }

  /* Stack the sort control above the result count. Listbox visibility and
   * selected state remain owned by Bazaarvoice. */
  > div:has(#bv-dropdown-select-reviews) {
    margin-block: var(--ceres_life-review-control-space)
      var(--ceres_life-review-card-space) !important;

    > div {
      display: flex !important;
      flex-direction: column-reverse !important;
      align-items: stretch !important;
      gap: var(--padding-xs) !important;
    }
    > div > div:first-child {
      text-align: start !important;
      color: var(--ceres_life-review-meta) !important;
      font-size: var(--ceres_life-review-meta-size) !important;
      line-height: var(--ceres_life-review-meta-leading) !important;
      letter-spacing: var(--ceres_life-review-meta-tracking) !important;
      padding: 0 !important;
    }
    div:has(:where(#bv-dropdown-select-reviews)):not(
        :has(> :where(#bv-dropdown-select-reviews))
      ) {
      width: 100% !important;
      min-width: 0 !important;
      margin: 0 !important;
      padding: 0 !important;
      border: 0 !important;
    }
    div:has(> div > #bv-dropdown-select-reviews) {
      position: relative !important;
      display: flex !important;
      align-items: center !important;
      width: 100% !important;
      padding: var(--padding-xs) var(--padding-lg) !important;
      border: var(--style-border-width) solid var(--ceres_life-review-rule) !important;
      border-radius: 0 !important;
      background: var(--ceres_life-review-surface) !important;
    }
    div:has(> #bv-dropdown-select-reviews) {
      flex: 0 0 auto !important;
      width: auto !important;
      padding: 0 !important;
      margin-inline-end: var(--padding-xs) !important;
    }
    [role="combobox"] {
      flex: 1 !important;
      min-width: 0 !important;
      padding: 0 !important;
    }

    /* Bazaarvoice binds pointer clicks to the title value. Extend that hit area to
     * the labelled control and its chevron without replacing its handler. */
    #bv-dropdown-title-reviews > div::before {
      content: '';
      position: absolute;
      inset: 0;
      cursor: pointer;
    }
    [role="combobox"] + div:has(> svg) {
      pointer-events: none !important;
    }

    /* Anchor the popup to the complete control, not the vendor's fixed width. */
    div:has(> [role="listbox"]) {
      inset-inline: 0 !important;
      top: 100% !important;
      width: 100% !important;
      min-width: 0 !important;
      max-width: 100% !important;
    }

    /* Relevancy help is conditional. Keep its icon and label on one line. */
    button > span[aria-hidden="true"]:has(> svg) {
      display: inline-flex !important;
      align-items: center !important;
      gap: var(--padding-2xs) !important;

      svg {
        flex-shrink: 0 !important;
        width: var(--icon-size-sm) !important;
        height: var(--icon-size-sm) !important;
      }
      > span {
        padding: 0 !important;
      }
    }
  }

  [role="listbox"] {
    color: var(--ceres_life-review-text) !important;
    background: var(--ceres_life-review-surface) !important;
    border-color: var(--ceres_life-review-rule) !important;
    border-radius: 0 !important;
  }

  [role="listbox"][id^="bv-reviews-sort-by-"] {
    width: 100% !important;

    [role="option"] > span {
      align-items: center !important;
      gap: var(--padding-xs) !important;
      padding: var(--padding-xs) var(--padding-lg) !important;
      color: var(--ceres_life-review-text) !important;
      background: var(--ceres_life-review-surface) !important;

      > div {
        padding: 0 !important;
      }
      > div:first-child {
        display: flex !important;
        align-items: center !important;
        justify-content: center !important;
        flex: 0 0 var(--icon-size-sm) !important;
      }
      svg {
        fill: currentColor !important;
      }
    }
    [role="option"]:is(:hover, :focus, :focus-within) > span {
      color: var(--ceres_life-text-inverted) !important;
      background: var(--ceres_life-bg-inverted) !important;
    }
  }

  #reviews_container > section {
    padding: 0 !important;
    margin: 0 0 var(--ceres_life-review-card-space) !important;
    border: 0 !important;
  }

  #reviews_container > section > div,
  [data-bv-v="contentItem"],
  [data-bv-v="contentItem"] > div {
    padding: 0 !important;
    margin: 0 !important;
    border: 0 !important;
    background: transparent !important;
  }

  [data-bv-v="contentItem"] > div > div:has([data-bv-v="contentHeader"]) {
    display: flex !important;
    flex-direction: column !important;
    gap: 0 !important;

    > div {
      display: block !important;
      width: 100% !important;
      min-width: 0 !important;
      padding: 0 !important;
      margin: 0 !important;
    }
  }

  [data-bv-v="contentHeader"] {
    border: 0 !important;
    padding: var(--ceres_life-review-header-space) 0 !important;
    margin: 0 !important;
    display: block !important;

    [itemprop="reviewRating"] {
      display: flex !important;
      align-items: center !important;
      min-block-size: var(--font-size--lg) !important;
      margin: 0 !important;
      padding: 0 !important;
      line-height: var(--ceres_life-review-meta-leading) !important;
    }
    [itemprop="reviewRating"] + div {
      padding: 0 !important;
      margin: 0 !important;
    }
    h3[itemprop="name"] {
      font-size: var(--ceres_life-review-title-size) !important;
      line-height: var(--ceres_life-review-title-leading) !important;
      font-family: var(--ceres_life-review-heading-family) !important;
      font-weight: var(--ceres_life-review-heading-weight) !important;
      letter-spacing: var(--letter-spacing--heading-normal) !important;
      padding: 0 !important;
      margin: 0 !important;
    }
    h3 + div,
    h3 + div div:has([itemprop="author"]) {
      width: 100% !important;
      min-width: 0 !important;
      max-width: 100% !important;
      padding: 0 !important;
      margin: 0 !important;
    }
    ul,
    li {
      margin: 0 !important;
      padding: 0 !important;
    }
    .badge-label {
      display: inline-flex !important;
      align-items: center !important;
      gap: var(--padding-2xs) !important;
      font-size: var(--ceres_life-review-meta-size) !important;
      line-height: var(--ceres_life-review-meta-leading) !important;
      color: var(--ceres_life-review-meta) !important;

      > span {
        padding: 0 !important;
        top: auto !important;
      }
      > span:has(> svg) {
        display: inline-flex !important;
        align-items: center !important;
        flex-shrink: 0 !important;
      }
    }
    .badge-label svg {
      position: static !important;
      width: var(--ceres_life-review-body-size) !important;
      height: var(--ceres_life-review-body-size) !important;
    }
    [itemprop="author"] {
      font-family: var(--ceres_life-review-heading-family) !important;
      font-weight: var(--ceres_life-review-heading-weight) !important;
      padding: 0 !important;
      margin: 0 !important;
      opacity: 1 !important;
    }
    div:has(> [itemprop="dateCreated"]) {
      display: block !important;
      margin-block-start: var(--ceres_life-review-header-space) !important;
      color: var(--ceres_life-review-meta) !important;
      font-size: var(--ceres_life-review-meta-size) !important;
      line-height: var(--ceres_life-review-meta-leading) !important;
      letter-spacing: var(--ceres_life-review-meta-tracking) !important;
    }
  }

  [data-bv-v="contentSummary"] {
    padding: 0 !important;
    margin: 0 !important;
    [itemprop="reviewBody"] {
      overflow-wrap: anywhere;
      padding: 0 0 var(--ceres_life-review-feedback-space) !important;
      margin: 0 !important;
    }
    p {
      margin: 0 !important;
    }
    div:has(> p) {
      padding: 0 !important;
      margin: 0 !important;
      border: 0 !important;
      background: transparent !important;
      color: var(--ceres_life-review-meta) !important;
      font-size: var(--ceres_life-review-meta-size) !important;
    }
  }

  [data-bv-v="feedback"] {
    padding: var(--ceres_life-review-header-space) 0 0 !important;
    margin: 0 !important;
    font-size: var(--ceres_life-review-meta-size) !important;
    line-height: var(--ceres_life-review-meta-leading) !important;
    letter-spacing: var(--ceres_life-review-meta-tracking) !important;

    [role="group"],
    [role="group"] > div:last-child {
      display: flex !important;
      flex-wrap: wrap !important;
      align-items: center !important;
      gap: var(--padding-xs) !important;
      margin: 0 !important;
      padding: 0 !important;
    }
    button {
      margin: 0 !important;
      padding: 0 !important;
      border: 0 !important;
      background: transparent !important;
    }
    button {
      min-height: var(--padding-2xl) !important;
      min-width: var(--padding-2xl) !important;
    }
    button > span {
      display: inline-flex !important;
      align-items: center !important;
      gap: var(--padding-2xs) !important;
    }
    svg {
      display: inline-block !important;
      width: var(--icon-size-sm) !important;
      height: var(--icon-size-sm) !important;
      fill: currentColor !important;
    }
    [role="group"] > div:last-child > div {
      margin: 0 !important;
      padding: 0 !important;
      color: var(--ceres_life-review-muted) !important;
    }
  }

  /* The sibling after the content column holds the optional secondary ratings.
   * Keep the vendor's percentage widths and positions, including fractional
   * quality fills and fit markers, so only presentation changes. */
  [data-bv-v="contentItem"]
    > div
    > div
    > div:has([data-bv-v="contentHeader"])
    + div {
    > div {
      padding: 0 !important;
      margin: 0 !important;
      background: transparent !important;
    }
    > div > div {
      display: flex !important;
      flex-direction: column !important;
      width: 100% !important;
      padding: 0 !important;
      margin: 0 !important;
      gap: var(--ceres_life-review-meter-space) !important;
    }
    > div > div > div {
      width: 100% !important;
      padding: 0 !important;
      margin: 0 !important;
    }
    > div > div > div:first-child {
      margin-block-start: var(--ceres_life-review-meter-space) !important;
    }
    > div > div > div > div:first-child {
      padding: 0 !important;
      margin: 0 0 var(--padding-xs) !important;
      line-height: var(--ceres_life-review-meta-leading) !important;
    }
    > div > div > div > div:last-child {
      padding: 0 !important;
      margin: 0 !important;
      align-items: center !important;
      gap: var(--padding-xs) !important;
    }
    > div > div > div > div:last-child > div:first-child {
      flex: 1 !important;
      padding: 0 !important;
      min-width: 0 !important;
    }
    > div > div > div > div:last-child > div + div {
      padding: 0 !important;
      font-size: var(--ceres_life-review-meta-size) !important;
      line-height: var(--ceres_life-review-meta-leading) !important;
    }
  }
}

/* The supplied panel presents the overall score, sorting and review cards.
 * Keep the vendor's empty-state submission available when there are no reviews. */
.product-info-links__reviews #bv_review_maincontainer:has(#reviews_container > section) {
  > div:has(#bv-reviews-overall-ratings-container) {
    > div:not(:has(#bv-reviews-overall-ratings-container)),
    .bv_rating_content1,
    .bv_rating_content2 ~ div {
      display: none !important;
    }
    > div:has(#bv-reviews-overall-ratings-container),
    .bv_rating_content2 {
      display: block !important;
      width: 100% !important;
      padding: 0 !important;
      margin: 0 !important;
      border: 0 !important;
    }
  }
  #bv_review_filter_container {
    display: none !important;
  }
}

.product-info-links__reviews #bv_review_maincontainer {
  #reviews_container + div {
    padding-block: var(--padding-lg) !important;
    border-block-start: var(--style-border-width) solid
      var(--ceres_life-review-rule) !important;
    > div {
      padding: 0 !important;
      margin: 0 !important;
    }
    ul {
      display: flex !important;
      gap: 0 !important;
      padding: 0 !important;
      margin: 0 !important;

      li {
        padding: 0 !important;
        margin: 0 !important;
      }
    }
    button,
    a {
      display: inline-flex !important;
      align-items: center !important;
      justify-content: center !important;
      width: var(--button-size-md) !important;
      height: var(--button-size-md) !important;
      padding: 0 !important;
      border: 0 !important;
      border-radius: 0 !important;
      background: transparent !important;
      color: var(--color-foreground) !important;

      > div[aria-hidden="true"] {
        display: flex !important;
        align-items: center !important;
        justify-content: center !important;
      }
      /* The inline carousel assets retain their own dimensions and stroke token. */
      svg:not([data-bv-carousel-chevron]) {
        display: none !important;
      }
      svg path[stroke] {
        stroke: currentColor !important;
      }
    }
    button:disabled {
      opacity: var(--opacity-30) !important;
      cursor: default !important;
    }
  }
}

/* Shared data-driven meters: individual and aggregate ratings. */
.product-info-links__reviews #bv_review_maincontainer {
  div[role="presentation"]:has(> div:nth-child(6)[role="presentation"]) {
    height: var(--ceres_life-review-meter-height) !important;
    background: var(--ceres_life-review-meter-empty) !important;
    > div {
      height: 100% !important;
    }
    > div:not([role]) {
      border-inline-end: var(--padding-3xs) solid
        var(--ceres_life-review-surface) !important;
    }
    > div[role] {
      background: var(--ceres_life-review-meter-filled) !important;
    }
  }
  div:has(> div[width]) {
    height: var(--ceres_life-review-meter-height) !important;
    align-items: stretch !important;
    > div {
      height: 100% !important;
      border: 0 !important;
      background: var(--ceres_life-review-meter-empty) !important;
    }
    > div[width="5%"] {
      background: var(--ceres_life-review-meter-filled) !important;
    }
    > div + div {
      border-inline-start: var(--padding-3xs) solid
        var(--ceres_life-review-surface) !important;
    }
  }
  div:has(> div[width]) + div > div {
    font-size: var(--font-size--3xs) !important;
    line-height: var(--ceres_life-review-meta-leading) !important;
    letter-spacing: var(--ceres_life-review-meta-tracking) !important;
    margin: var(--padding-2xs) 0 0 !important;
    padding: 0 !important;
  }
}

.product-info-links__reviews #bv_review_maincontainer {
  div:has(> .bv_content_label_row) {
    width: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
    > div:first-child {
      padding: 0 !important;
      margin-block-end: var(--padding-xs) !important;
    }
    > div:last-child {
      margin: 0 !important;
      padding: 0 !important;
      gap: var(--padding-xs) !important;
      align-items: center !important;
    }
    > div:last-child > div:first-child {
      flex: 1 !important;
      padding: 0 !important;
    }
    > div:last-child > div + div {
      padding: 0 !important;
      font-size: var(--ceres_life-review-meta-size) !important;
    }
  }
}
