/* Product buy-box blocks filled from Shopify metafields (see inc/pdp-blocks.php) */

/* block heading + image/text rows */
.osr-block-heading-data {
  margin: 15px 0;
}

.osr-image-with-text-title {
  font-family: agenda, sans-serif;
  font-size: 24px;
  line-height: 34px;
  color: #000;
  margin: 0;
  text-transform: uppercase;
}

.osr-image-with-text-section {
  margin: 15px 0;
}

.osr-image-with-text-data {
  display: flex;
  flex-direction: row;
  justify-content: flex-start;
  align-items: flex-start;
  gap: 12px;
}

.osr-iwt-image-data {
  max-width: 30px;
  max-height: 30px;
  flex: 0 0 30px;
}

.osr-iwt-text-data {
  width: calc(100% - 30px);
}

.osr-img-with-text-image {
  width: 100%;
  height: auto;
  display: block;
  margin: 0;
}

.osr-iwt-text-content {
  margin: 0;
  text-align: left;
  font-size: 14px;
  line-height: 21px;
  color: #004f95;
}

.osr-iwt-text-content p {
  margin: 0;
}

/* "Get it by" line */
.osr-product-text-wrap {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  background: #fff;
  border-radius: 6px;
  padding: 5px;
  margin: 0 0 15px;
}

.osr-product-text-wrap p {
  font-size: 16px;
  line-height: 26px;
  color: #751db1;
  margin: 0;
}

.osr-product-text-wrap img {
  width: 22px;
  height: auto;
  margin: 0;
}

.osr-product-design-4 .osr-product-text-wrap p,
.osr-product-design-6 .osr-product-text-wrap p {
  color: #de245f;
}

/* text boxes (caffeine diffuser style) */
.osr-product-textbox-wrap {
  display: flex;
  flex-wrap: wrap;
  gap: 20px;
  justify-content: space-between;
  margin: 0 0 15px;
}

.osr-product-textbox {
  width: fit-content;
  background: #fff;
  padding: 10px 15px;
  border-radius: 6px;
}

.osr-product-textbox-text {
  margin: 0;
  font-size: 16px;
  line-height: 20px;
  text-align: center;
}

.osr-product-textbox:nth-of-type(1) .osr-product-textbox-text {
  color: #c10138;
}

/* info accordions */
.osr-product-info-accordian-section {
  margin: 15px 0;
}

.osr-product-info-accordian-box {
  border: 2px solid #000;
  border-radius: 10px;
  padding: 15px;
  background: #fff;
  margin-bottom: 15px;
  cursor: pointer;
  color: #000000;
}

.osr-product-info-accordian-box:last-child {
  margin-bottom: 0;
}

.osr-product-info-accordian-title {
  margin: 0;
  font-size: 24px;
  line-height: 34px;
  text-transform: uppercase;
}

.osr-product-info-accordian-box-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
}

.osr-caret-down-button,
.osr-caret-up-button {
  width: 36px;
  height: 36px;
  font-size: 30px;
  line-height: 20px;
  padding: 0;
  background: #000;
  color: #fff;
  border: none;
  outline: none;
  box-shadow: none;
  border-radius: 6px;
  margin: 0;
  cursor: pointer;
  min-height: 0;
  text-transform: none;
  letter-spacing: 0;
  font-family: Arial, sans-serif;
}

.osr-caret-up-button {
  display: none;
  background: #751db1;
}

.osr-product-info-accordian-box-content-data {
  max-height: 0;
  overflow: hidden;
  transition: max-height .4s ease-out;
}

.osr-product-info-accordian-box-content-data.open {
  max-height: none !important;
  height: fit-content;
}

.osr-product-info-accordian-content-box-details p {
  margin: 0;
  font-size: 16px;
  line-height: 26px;
}

.osr-product-info-accordian-content-box-details ul {
  margin: 0;
  padding: 20px 0;
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 15px;
  list-style: none;
}

.osr-product-info-accordian-content-box-details ul li {
  display: flex;
  align-items: center;
  gap: 10px;
  margin: 0;
}

.osr-product-info-accordian-content-box-details ul li:before {
  content: "";
  background: url('https://cdn.shopify.com/s/files/1/0524/4239/8896/files/CheckCircle_66da5548-e264-498c-9f55-c8139210c53a.png?v=1739777985');
  background-size: cover;
  width: 28px;
  height: 28px;
  display: block;
  flex: 0 0 28px;
}

.osr-product-info-accordian-content-box-details ul li.osr-accordian-description-text:before {
  display: none;
}

.osr-product-info-accordian-box-benifit .osr-product-info-accordian-content-box-details ul li {
  position: relative;
  padding-left: 40px;
}

.osr-product-info-accordian-box-benifit .osr-product-info-accordian-content-box-details ul li:before {
  position: absolute;
  background-repeat: no-repeat;
  background-size: cover;
  left: 0;
  top: 0;
}

.osr-product-info-accordian-box-content-data.osr-product-info-accordian-box-content-data-makes ul {
  margin-bottom: 0;
}

.osr-product-info-accordian-description-text {
  width: 100%;
  display: flex;
  flex-direction: row;
  justify-content: space-between;
  align-items: center;
  border-bottom: 1px solid #004f95;
  padding: 17px 0;
}

.osr-product-info-accordian-description-text:last-child {
  border-bottom: none;
}

.osr-accordian-ingredients-image {
  width: 24px;
  height: 24px;
  margin: 0 9px 0 0;
}

.osr-product-info-accordian-text-a {
  color: #004f95;
  font-size: 14px;
  line-height: 21px;
  text-align: left;
  flex-grow: 1;
  margin: 0;
}

.osr-product-info-accordian-text-b {
  color: #004f95;
  font-size: 14px;
  line-height: 21px;
  width: calc(100% - 140px);
  margin: 0;
}

.osr-product-info-accordian-supplement-image {
  width: 100%;
  height: auto;
  display: block;
  margin: 0;
}

.osr-accordian-description-text {
  color: #004f95;
  font-size: 14px;
  line-height: 21px;
  text-align: left;
}

.osr-product-info-accordian-title-box-details {
  margin: 0;
}

/* design 5 (Melo Blue Razz): blue header bar */
.osr-product-design-5 .osr-product-info-accordian-box {
  padding: 0;
  margin-bottom: 15px;
  border: 2px solid #004f95;
  border-radius: 10px;
  background: #fff;
  overflow: hidden;
}

.osr-product-design-5 .osr-product-info-accordian-box-header {
  border: none;
  border-radius: 4px;
  background: #004f95;
  padding: 0 20px;
  cursor: pointer;
}

.osr-product-design-5 .osr-product-info-accordian-title {
  margin: 2% 0;
  color: #fff;
  font-size: 16px;
  line-height: 26px;
}

.osr-product-design-5 .osr-caret-down-button,
.osr-product-design-5 .osr-caret-up-button {
  background: #fff;
  color: #004f95;
}

.osr-product-design-5 .osr-product-info-accordian-text-b {
  text-align: right;
  white-space: nowrap;
  width: auto;
}

.osr-product-design-5 .osr-product-info-accordian-box-content-data {
  padding: 0 40px;
}

.osr-product-design-5 .osr-product-info-accordian-box-content-data.open {
  padding: 20px 40px;
}

.osr-product-design-5 .osr-product-info-accordian-text-a,
.osr-product-design-5 .osr-product-info-accordian-text-b {
  font-size: 16px;
  line-height: 26px;
}

/* pink caret designs */
.osr-product-design-4 .osr-caret-down-button,
.osr-product-design-4 .osr-caret-up-button,
.osr-product-design-6 .osr-caret-down-button,
.osr-product-design-6 .osr-caret-up-button {
  background: #de245f;
}

/* image blocks */
.osr-product-meta-image-wrap {
  margin: 15px 0 0;
}

.osr-product-meta-image-wrap-title {
  margin: 0;
  text-transform: uppercase;
  padding-bottom: 30px;
}

.osr-product-meta-image-wrap-img {
  width: 100%;
  height: auto;
  display: block;
}

.osr-product-meta-image {
  margin-bottom: 30px;
}

.osr-product-meta-image:last-child {
  margin-bottom: 0;
}

@media (max-width: 749px) {
  .osr-product-info-accordian-title {
    font-size: 18px;
    line-height: 24px;
  }

  .osr-product-design-5 .osr-product-info-accordian-title {
    font-size: 16px;
    line-height: 26px;
  }

  .osr-caret-down-button,
  .osr-caret-up-button {
    width: 30px;
    height: 30px;
    font-size: 24px;
  }

  .osr-product-design-5 .osr-product-info-accordian-box-content-data {
    padding: 0 20px;
  }

  .osr-product-design-5 .osr-product-info-accordian-box-content-data.open {
    padding: 15px 20px;
  }
}

/* light hero: dark labels, flavor cards keep white text only when active */
.osr-hero-light .osr-flavor-label-wrap,
.osr-hero-light .csp-delivery,
.osr-hero-light .csp-delivery span,
.osr-hero-light .csp-delivery-date {
  color: #121212 !important;
}

.osr-hero-light .osr-selected-val {
  color: rgba(18, 18, 18, .75) !important;
}

.osr-hero-light .osr-flavor-card-btn:not(.is-active) .osr-flavor-card-title {
  color: #121212 !important;
}

.osr-hero-light .osr-flavor-card-btn.is-active .osr-flavor-card-title {
  color: #fff !important;
}

.osr-hero-light .csp-guarantee,
.osr-hero-light .csp-guarantee span {
  color: #121212 !important;
}

/* default Add to Cart (products without a subscription) = Shopify .product-form__submit */
body.single-product:not(.osr-has-csp-box) form.cart .single_add_to_cart_button {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  height: 47px;
  min-height: 47px;
  margin: 0 0 10px;
  padding: 10px 20px;
  background: #000;
  color: #cdd949;
  border: 0;
  border-radius: 6px;
  box-shadow: none;
  font-family: agenda, sans-serif;
  font-size: 24px;
  font-weight: 700;
  line-height: 20px;
  letter-spacing: 0;
  text-transform: uppercase;
  opacity: 1;
}

body.single-product:not(.osr-has-csp-box) form.cart .single_add_to_cart_button:hover {
  background: #000;
  color: #cdd949;
  opacity: .9;
}

body.single-product:not(.osr-has-csp-box) form.cart .single_add_to_cart_button.disabled {
  opacity: .5;
}

body.single-product:not(.osr-has-csp-box) form.cart .woocommerce-variation-add-to-cart,
body.single-product:not(.osr-has-csp-box) form.cart.cart:not(.variations_form) {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0 10px;
}

body.single-product:not(.osr-has-csp-box) form.cart .woocommerce-variation-add-to-cart .single_add_to_cart_button,
body.single-product:not(.osr-has-csp-box) form.cart.cart:not(.variations_form) .single_add_to_cart_button {
  flex: 1 1 100%;
}

.cm-payment__icons {
  display: flex;
  justify-content: center;
  gap: 5px;
  margin: 0 0 15px;
}

.cm-payment__icons img {
  width: 38px;
  height: 24px;
  margin: 0;
}

/* sold out state = Shopify's disabled black button */
body.single-product:not(.osr-has-csp-box) .woocommerce-variation-availability p.stock.out-of-stock,
body.single-product:not(.osr-has-csp-box) .summary p.stock.out-of-stock {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  height: 47px;
  margin: 0 0 10px;
  padding: 10px 20px;
  background: #000;
  border-radius: 6px;
  color: #cdd949;
  opacity: .5;
  font-size: 0;
  line-height: 0;
}

body.single-product:not(.osr-has-csp-box) .woocommerce-variation-availability p.stock.out-of-stock::before,
body.single-product:not(.osr-has-csp-box) .summary p.stock.out-of-stock::before {
  content: "Sold out";
  font-family: agenda, sans-serif;
  font-size: 24px;
  font-weight: 700;
  line-height: 20px;
  text-transform: uppercase;
  color: #cdd949;
}

/* default buy box: the csp rules in custom.css hide the native variation block for every product, bring it back when there is no subscription box */
body.single-product:not(.osr-has-csp-box) .variations_form .single_variation_wrap,
body.single-product:not(.osr-has-csp-box) .variations_form .single_variation,
body.single-product:not(.osr-has-csp-box) .variations_form .woocommerce-variation {
  display: block !important;
}

body.single-product:not(.osr-has-csp-box) .variations_form .woocommerce-variation-add-to-cart {
  display: flex !important;
}

body.single-product:not(.osr-has-csp-box) .variations_form .woocommerce-variation-add-to-cart-disabled {
  display: none !important;
}

body.single-product:not(.osr-has-csp-box) .variations_form .woocommerce-variation-price,
body.single-product:not(.osr-has-csp-box) .variations_form .woocommerce-variation-description,
body.single-product:not(.osr-has-csp-box) .variations_form .woocommerce-variation-availability p.stock.in-stock {
  display: none !important;
}

body.single-product:not(.osr-has-csp-box) .variations_form .woocommerce-variation-availability {
  display: block !important;
}

/* quantity stepper (Shopify: label + 2px black bordered buttons) */
body.single-product:not(.osr-has-csp-box) form.cart .quantity {
  display: inline-flex;
  align-items: center;
  margin: 0 10px 10px 0;
}

body.single-product:not(.osr-has-csp-box) form.cart .quantity .minus,
body.single-product:not(.osr-has-csp-box) form.cart .quantity .plus {
  width: 44px;
  height: 47px;
  border: 2px solid #000;
  border-radius: 6px;
  background: #fff;
  color: #000;
  margin: 0;
  padding: 0;
  box-shadow: none;
  font-size: 18px;
}

body.single-product:not(.osr-has-csp-box) form.cart .quantity input.qty {
  width: 56px;
  height: 47px;
  border: 0;
  box-shadow: none;
  color: #000;
  font-size: 20px;
  font-weight: 500;
  text-align: center;
  margin: 0;
  border-top: 2px solid #000;
  background: #fff;
  border-bottom: 2px solid #000;
}

/* ---- variant swatches: border on the common (unselected) cards, black text on hover, no "Top seller" badge for now ---- */
.osr-flavor-card-btn:not(.is-active) {
  border-color: rgba(255, 255, 255, 0.3);
}

.osr-hero-light .osr-flavor-card-btn:not(.is-active),
.osr-lp-buy--light .osr-flavor-card-btn:not(.is-active) {
  border-color: rgba(0, 0, 0, 0.22);
}

.osr-hero-light .osr-flavor-card-btn:not(.is-active):hover,
.osr-lp-buy--light .osr-flavor-card-btn:not(.is-active):hover {
  background: rgba(255, 255, 255, 0.85);
  border-color: #000000;
}

.osr-hero-light .osr-flavor-card-btn:not(.is-active):hover .osr-flavor-card-title,
.osr-lp-buy--light .osr-flavor-card-btn:not(.is-active):hover .osr-flavor-card-title {
  color: #000000;
}

.osr-flavor-card-badge {
  display: none !important;
}

/* no dotted divider above the quantity row and no "Clear" link */
.variations tr,
.variations tr+tr,
.variations tbody tr {
  border-top: 0 !important;
  border-bottom: 0 !important;
}

.variations .reset_variations {
  display: none !important;
}

/* rating under the title: stars + review count, both scroll to the reviews section */
.single-product .woocommerce-product-rating {
  display: flex;
  align-items: center;
  gap: 8px;
  cursor: pointer;
}

.single-product .woocommerce-product-rating .star-rating {
  margin: 0;
}

.single-product .woocommerce-product-rating .osr-review-count {
  font-size: 14px;
  text-decoration: underline;
  color: inherit;
}

#osr-reviews {
  scroll-margin-top: 130px;
}

/* ---- product title block like Shopify: rating first, then the title (agenda 72/80, 40/45 on mobile); no breadcrumb / divider ---- */
.single-product .product-info .woocommerce-breadcrumb,
.single-product .product-info .breadcrumbs,
.single-product .product-info>.is-divider,
.single-product .product-info .next-prev-thumbs {
  display: none !important;
}

.single-product .product-info .woocommerce-product-rating {
  margin: 0 0 12px;
}

.single-product .product-info h1.product-title {
  margin: 0 0 12px;
  font-family: agenda, var(--heading), sans-serif;
  font-size: 72px;
  line-height: 80px;
  font-weight: 400;
  letter-spacing: 0.6px;
  text-transform: uppercase;
}

.single-product .product-info .price-wrapper .price .woocommerce-Price-amount {
  font-size: 36px;
  line-height: 30px;
  font-weight: 400;
  letter-spacing: 1.3px;
}

.single-product .product-info .price-wrapper .price del {
  font-size: 36px;
  line-height: 30px;
}

@media (max-width: 749px) {
  .single-product .product-info h1.product-title {
    font-size: 40px;
    line-height: 45px;
  }

  .single-product .product-info .price-wrapper .price .woocommerce-Price-amount {
    font-size: 22px;
  }

  .single-product .product-info .price-wrapper .price del {
    font-size: 22px;
    line-height: 30px;
  }
}

/* store-wide rating badge above the title (pink stars + "N reviews") */
.single-product .osr-rating {
  margin: 0 0 14px;
}

.single-product .osr-rating .osr-rating__link {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  color: inherit;
  text-decoration: none;
}

.single-product .osr-rating .osr-rev-star {
  width: 20px;
  height: 20px;
}

.single-product .osr-rating .osr-rev-stars {
  gap: 2px;
}

.single-product .osr-rating .osr-review-count {
  font-size: 16px;
  font-weight: 700;
  text-decoration: none;
  color: inherit;
}

/* sale: no round "Sale!" bubble on the gallery - the pill sits next to the price instead */
.single-product .product-images .badge-container,
.single-product .woocommerce-product-gallery .badge-container,
.single-product .product-gallery .badge-container {
  display: none !important;
}

.single-product .product-info .price-wrapper {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 12px;
}

.single-product .product-info .price-wrapper .price {
  margin: 0;
}

.single-product .product-info .price-wrapper .osr-sale-badge {
  display: inline-flex;
  align-items: center;
  padding: 5px 13px 6px;
  background: #121212;
  color: #fff;
  border: 1px solid rgba(255, 255, 255, 0.1);
  border-radius: 40px;
  font-family: proxima, var(--body), sans-serif;
  font-size: 12px;
  line-height: 12px;
  font-weight: 400;
  letter-spacing: 1px;
  text-transform: none;
}

.single-product .product-info .price-wrapper .osr-sale-badge[hidden] {
  display: none;
}

.single-product .product-info .price-wrapper {
  margin-bottom: 16px;
}

.single-product .product-thumbnails .col {
  padding-top: 5px;
  padding-bottom: 5px;
}

.single-product .product-thumbnails .col>a {
  display: flex;
  align-items: center;
  justify-content: center;
  height: 135px;
  border: 2px solid #000000;
  border-radius: 10px;
  background: #ffffff;
  overflow: hidden;
  box-sizing: border-box;
  box-shadow: 5px 4px #000;
}

.single-product .product-thumbnails .col>a img {
  max-width: 82%;
  max-height: 82%;
  width: auto;
  height: auto;
  object-fit: contain;
  margin-bottom: 0px;
}

.single-product .product-images {
  position: relative;
  background: #ffffff;
  border-radius: 10px;
}

.single-product .product-images .wp-post-image {
  border-radius: 10px;
}

.single-product .product-images::after {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  right: 5px;
  bottom: 4px;
  border: 2px solid #000000;
  border-radius: 10px;
  box-shadow: 5px 4px 0 0 #000000;
  pointer-events: none;
  z-index: 5;
}

.pdp-melo-lux-cherry-slush .product-images,
.pdp-helo-lux-caffeine-diffuser .product-images,
.pdp-helo-lux-vitamin-b12-diffuser .product-images {
  background: transparent;
}

.pdp-melo-lux-cherry-slush .product-images::after,
.pdp-helo-lux-caffeine-diffuser .product-images::after,
.pdp-helo-lux-vitamin-b12-diffuser .product-images::after {
  display: none;
}

.pdp-melo-lux-cherry-slush .product-thumbnails .col>a,
.pdp-helo-lux-caffeine-diffuser .product-thumbnails .col>a,
.pdp-helo-lux-vitamin-b12-diffuser .product-thumbnails .col>a {
  border: none;
  background: transparent;
  box-shadow: unset;
}

@media only screen and (max-width: 767px) {
  .single-product .product-thumbnails .col>a {
    height: 100px;
  }

  .single-product .product-thumbnails .col>a img {
    max-width: 100%;
    max-height: 100%;
    width: 100%;
    height: 100%;
    object-fit: cover;
  }
}