/* ReeBic commerce UX — product buy box, FBT, modals, mini-basket, cart */

/* —— Member price bar (AD MyAD style) —— */
.rb-member-price {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
  margin: 0.75rem 0 1rem;
  padding: 0.65rem 0.85rem;
  background: #121212;
  color: #fff;
  border-radius: 2px;
}
.rb-member-price__left {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.45rem 0.65rem;
  font-size: 0.82rem;
}
.rb-member-price__brand {
  font-family: "Outfit", system-ui, sans-serif;
  font-weight: 800;
  color: #00b7c5;
}
.rb-member-price__right {
  display: flex;
  align-items: center;
  gap: 0.5rem;
}
.rb-member-price__amount {
  display: inline-flex;
  align-items: center;
  padding: 0.35rem 0.75rem;
  background: #ffe030;
  color: #121212;
  font-family: "Outfit", system-ui, sans-serif;
  font-weight: 800;
  font-size: 1rem;
  border-radius: 999px;
}
.rb-member-price__join,
.rb-member-price a.rb-member-price__join,
.rb-member-price a.rb-member-price__join:link,
.rb-member-price a.rb-member-price__join:visited {
  color: #ffe030 !important;
  font-weight: 800;
  font-size: 0.82rem;
  text-decoration: underline;
  text-underline-offset: 2px;
}
.rb-member-price__join:hover,
.rb-member-price__join:focus,
.rb-member-price__join:active,
.rb-member-price a.rb-member-price__join:hover,
.rb-member-price a.rb-member-price__join:focus,
.rb-member-price a.rb-member-price__join:active,
.rb-member-price a:hover {
  color: #ffffff !important;
}
.rb-member-price.is-member .rb-member-price__brand { color: #ffe030; }

.rb-read-desc {
  margin: 0.5rem 0 1rem;
}
.rb-read-desc a {
  color: #00b7c5;
  font-weight: 700;
  text-decoration: none;
}
.rb-read-desc a:hover { text-decoration: underline; }

/*
 * Elementor product columns — sticky pair (AD behaviour).
 * Left:  .elementor-element-43e50c4  (image)
 * Right: .elementor-element-0b07605  (buy box)
 * Shorter column sticks while scrolling until short description / parent ends.
 * Does NOT change column widths or layout — sticky only.
 */
body.single-product .e-con:has(> .elementor-element-43e50c4):has(> .elementor-element-0b07605),
body.rb-product-page .e-con:has(> .elementor-element-43e50c4):has(> .elementor-element-0b07605) {
  align-items: flex-start !important;
  overflow: visible !important;
}
body.single-product .elementor-element-43e50c4,
body.single-product .elementor-element-0b07605,
body.rb-product-page .elementor-element-43e50c4,
body.rb-product-page .elementor-element-0b07605 {
  position: sticky;
  top: 7.25rem;
  align-self: flex-start !important;
  max-height: none;
  z-index: 2;
}
body.single-product .elementor-element-0b07605,
body.rb-product-page .elementor-element-0b07605 {
  z-index: 3;
}
body.admin-bar.single-product .elementor-element-43e50c4,
body.admin-bar.single-product .elementor-element-0b07605,
body.admin-bar.rb-product-page .elementor-element-43e50c4,
body.admin-bar.rb-product-page .elementor-element-0b07605 {
  top: calc(7.25rem + 32px);
}
@media (max-width: 782px) {
  body.admin-bar.single-product .elementor-element-43e50c4,
  body.admin-bar.single-product .elementor-element-0b07605,
  body.admin-bar.rb-product-page .elementor-element-43e50c4,
  body.admin-bar.rb-product-page .elementor-element-0b07605 {
    top: calc(7.25rem + 46px);
  }
}
@media (max-width: 900px) {
  body.single-product .elementor-element-43e50c4,
  body.single-product .elementor-element-0b07605,
  body.rb-product-page .elementor-element-43e50c4,
  body.rb-product-page .elementor-element-0b07605 {
    position: static;
    top: auto;
  }
}

/* —— Classic Woo product: media (title+image) LEFT | buy box RIGHT (AD) —— */
body.rb-product-classic.woocommerce div.product,
body.rb-product-page.woocommerce div.product:has(> .woocommerce-product-gallery):has(> .summary),
body.rb-product-page.woocommerce div.product:has(> .rb-product-media):has(> .summary) {
  position: relative;
}
body.rb-product-classic.woocommerce div.product::after,
body.rb-product-page.woocommerce div.product:has(> .woocommerce-product-gallery):has(> .summary)::after,
body.rb-product-page.woocommerce div.product:has(> .rb-product-media):has(> .summary)::after {
  content: "";
  display: table;
  clear: both;
}

/* Left column = title + gallery (same width as main image) */
body.rb-product-classic.woocommerce div.product > .rb-product-media,
body.rb-product-page.woocommerce div.product > .rb-product-media {
  float: left !important;
  width: 48% !important;
  margin: 0 0 2rem !important;
  clear: none !important;
}
body.rb-product-classic.woocommerce div.product > .rb-product-media .woocommerce-product-gallery,
body.rb-product-page.woocommerce div.product > .rb-product-media .woocommerce-product-gallery {
  float: none !important;
  width: 100% !important;
  margin: 0 !important;
}

/* Fallback if wrap missing: gallery alone still left column */
body.rb-product-classic.woocommerce div.product > .woocommerce-product-gallery,
body.rb-product-page.woocommerce div.product:has(> .summary) > .woocommerce-product-gallery {
  float: left !important;
  width: 48% !important;
  margin: 0 0 2rem !important;
}
body.rb-product-classic.woocommerce div.product > .summary.entry-summary,
body.rb-product-classic.woocommerce div.product > .summary,
body.rb-product-page.woocommerce div.product:has(> .woocommerce-product-gallery) > .summary,
body.rb-product-page.woocommerce div.product:has(> .rb-product-media) > .summary {
  float: right !important;
  width: 48% !important;
  margin: 0 0 2rem !important;
  clear: none !important;
}
body.rb-product-classic.woocommerce div.product > .woocommerce-tabs,
body.rb-product-classic.woocommerce div.product > .related.products,
body.rb-product-classic.woocommerce div.product > .upsells.products,
body.rb-product-classic.woocommerce div.product > .rb-fbt,
body.rb-product-classic .rb-fbt--page,
body.rb-product-page.woocommerce div.product:has(> .woocommerce-product-gallery) > .woocommerce-tabs,
body.rb-product-page.woocommerce div.product:has(> .woocommerce-product-gallery) > .related,
body.rb-product-page.woocommerce div.product:has(> .woocommerce-product-gallery) > .upsells,
body.rb-product-page.woocommerce div.product:has(> .rb-product-media) > .woocommerce-tabs,
body.rb-product-page.woocommerce div.product:has(> .rb-product-media) > .related,
body.rb-product-page.woocommerce div.product:has(> .rb-product-media) > .upsells,
body.rb-product-page .rb-fbt--page {
  float: none !important;
  clear: both !important;
  width: 100% !important;
  margin-top: 0.5rem;
}

body.rb-product-classic .woocommerce-product-gallery,
body.rb-product-page .rb-product-media .woocommerce-product-gallery {
  position: relative;
}
body.rb-product-classic .woocommerce-product-gallery__wrapper,
body.rb-product-page .rb-product-media .woocommerce-product-gallery__wrapper {
  margin: 0;
}
body.rb-product-classic .woocommerce-product-gallery__image img,
body.rb-product-page .rb-product-media .woocommerce-product-gallery__image img {
  cursor: zoom-in;
  width: 100%;
  height: auto;
  display: block;
  background: #fff;
}
body.rb-product-classic .flex-control-thumbs,
body.rb-product-page .rb-product-media .flex-control-thumbs {
  display: flex !important;
  flex-wrap: nowrap;
  gap: 0.4rem;
  margin-top: 0.65rem !important;
  overflow-x: auto;
  padding: 0 !important;
  list-style: none;
}
body.rb-product-classic .flex-control-thumbs li,
body.rb-product-page .rb-product-media .flex-control-thumbs li {
  width: 64px !important;
  margin: 0 !important;
  flex: 0 0 64px;
}
body.rb-product-classic .flex-control-thumbs li img,
body.rb-product-page .rb-product-media .flex-control-thumbs li img {
  border: 2px solid transparent;
  opacity: 1;
}
body.rb-product-classic .flex-control-thumbs li img.flex-active,
body.rb-product-classic .flex-control-thumbs li img:hover,
body.rb-product-page .rb-product-media .flex-control-thumbs li img.flex-active,
body.rb-product-page .rb-product-media .flex-control-thumbs li img:hover {
  border-color: #00b7c5;
}

.rb-zoom-controls {
  display: inline-flex;
  gap: 0.35rem;
  margin: 0.55rem 0 0.25rem;
}
.rb-zoom-controls__btn {
  width: 2rem;
  height: 2rem;
  border: 1px solid #cfd6d3;
  background: #fff;
  color: #1a2330;
  font-size: 1rem;
  line-height: 1;
  cursor: pointer;
  border-radius: 2px;
}
.rb-zoom-controls__btn:hover {
  border-color: #00b7c5;
  color: #00b7c5;
}

/* Buy box: natural DOM order from PHP (price → options → ATC → short desc).
   Do NOT use flex order here — it pulls short description above the basket. */
body.rb-product-page .summary.entry-summary,
body.rb-product-page .summary {
  display: block;
}

/* Product name — simple, sits above image only (image-column width, not full page) */
.rb-product-media .rb-product-title-top,
.rb-product-title-top {
  float: none !important;
  clear: none !important;
  width: 100% !important;
  max-width: 100% !important;
  margin: 0 0 0.75rem !important;
  padding: 0 !important;
  grid-column: auto;
}
.rb-product-title-top .product_title,
.rb-product-title-top h1,
body.rb-product-page .rb-product-title-top h1,
body.rb-product-page .rb-product-media .product_title {
  margin: 0;
  font-family: "Outfit", system-ui, sans-serif;
  font-weight: 600;
  font-size: clamp(1.15rem, 1.9vw, 1.45rem);
  line-height: 1.3;
  letter-spacing: -0.01em;
  color: #2d3740;
}

/* Hide duplicate title left in right column / Elementor when media title exists */
body.rb-product-page:has(.rb-product-title-top) .summary > h1.product_title,
body.rb-product-page:has(.rb-product-title-top) .elementor-widget-woocommerce-product-title {
  display: none !important;
}
body.rb-product-page .rb-product-title-top h1,
body.rb-product-page .rb-product-title-top .product_title {
  display: block !important;
}

/* Prefer PHP excerpt after Add to Basket; hide Elementor Short Description
   widgets that are usually placed above the buy box in Theme Builder. */
body.rb-product-page .elementor-widget-woocommerce-product-short-description {
  display: none !important;
}

/* Short description always under buy controls */
body.rb-product-page .summary > .woocommerce-product-details__short-description,
body.rb-product-page form.cart + .woocommerce-product-details__short-description,
body.rb-product-page .elementor-widget-woocommerce-product-add-to-cart .woocommerce-product-details__short-description,
body.rb-product-page .woocommerce-product-details__short-description {
  display: block !important;
  margin-top: 1.25rem;
  padding-top: 1rem;
  border-top: 1px solid #e6eaed;
  clear: both;
}

/* Elementor: keep short-description widget after ATC in the same column */
body.rb-product-page .elementor-widget-wrap:has(.elementor-widget-woocommerce-product-add-to-cart) {
  display: flex !important;
  flex-direction: column;
}
body.rb-product-page .elementor-widget-wrap:has(.elementor-widget-woocommerce-product-add-to-cart) .elementor-widget-woocommerce-product-title,
body.rb-product-page .elementor-widget-wrap:has(.elementor-widget-woocommerce-product-add-to-cart) .elementor-widget-theme-post-title {
  order: 1 !important;
}
body.rb-product-page .elementor-widget-wrap:has(.elementor-widget-woocommerce-product-add-to-cart) .elementor-widget-woocommerce-product-price {
  order: 2 !important;
}
body.rb-product-page .elementor-widget-wrap:has(.elementor-widget-woocommerce-product-add-to-cart) .elementor-widget-woocommerce-product-rating {
  order: 3 !important;
}
body.rb-product-page .elementor-widget-wrap:has(.elementor-widget-woocommerce-product-add-to-cart) .elementor-widget-woocommerce-product-add-to-cart {
  order: 4 !important;
}
body.rb-product-page .elementor-widget-wrap:has(.elementor-widget-woocommerce-product-add-to-cart) .elementor-widget-woocommerce-product-meta {
  order: 95 !important;
}

body.rb-product-page .product_title,
body.rb-product-page h1.product_title {
  font-family: "Outfit", system-ui, sans-serif;
  font-weight: 600;
  font-size: clamp(1.15rem, 1.9vw, 1.45rem);
  line-height: 1.3;
  margin-bottom: 0.65rem;
  color: #2d3740;
}
body.rb-product-page .rb-product-media .product_title,
body.rb-product-page .rb-product-title-top .product_title,
body.rb-product-page .rb-product-title-top h1 {
  font-weight: 600 !important;
  font-size: clamp(1.15rem, 1.9vw, 1.45rem) !important;
  line-height: 1.3 !important;
  margin-bottom: 0 !important;
}
body.rb-product-page p.price {
  font-family: "Outfit", system-ui, sans-serif;
  font-size: 1.45rem;
  font-weight: 800;
  margin: 0.35rem 0 0.75rem;
}
body.rb-product-page form.cart {
  margin-top: 0.35rem !important;
  margin-bottom: 1rem !important;
}
body.rb-product-page table.variations {
  margin-bottom: 0.75rem;
}

/* —— AD buy box: stars, stock, selects, qty, red ATC —— */
body.rb-product-page .rb-ad-rating {
  display: flex;
  align-items: center;
  gap: 0.55rem;
  margin: 0.35rem 0 0.65rem;
}
body.rb-product-page .rb-ad-rating__stars {
  position: relative;
  display: inline-block;
  font-size: 1.15rem;
  letter-spacing: 0.05em;
  line-height: 1;
}
body.rb-product-page .rb-ad-rating__stars-bg {
  color: #d7dbe0;
}
body.rb-product-page .rb-ad-rating__stars-fg {
  position: absolute;
  left: 0;
  top: 0;
  overflow: hidden;
  white-space: nowrap;
  color: #f5c518;
}
body.rb-product-page .rb-ad-rating__count {
  font-size: 0.85rem;
  color: #6b7280;
  text-decoration: none;
}
body.rb-product-page .rb-ad-rating__count:hover {
  color: #111;
  text-decoration: underline;
}

body.rb-product-page .rb-ad-stock {
  margin: 0 0 0.2rem;
}
body.rb-product-page .rb-ad-stock__status {
  display: inline-flex;
  align-items: center;
  gap: 0.45rem;
  font-family: "Outfit", system-ui, sans-serif;
  font-size: 0.82rem;
  font-weight: 800;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}
body.rb-product-page .rb-ad-stock__status::before {
  content: "";
  width: 3px;
  height: 0.95em;
  background: currentColor;
}
body.rb-product-page .rb-ad-stock__status.is-in { color: #22c55e; }
body.rb-product-page .rb-ad-stock__status.is-out { color: #9ca3af; }
body.rb-product-page .rb-ad-stock__ref {
  display: block;
  margin-top: 0.15rem;
  margin-bottom: 0;
  font-size: 0.78rem;
  color: #6b7280;
  line-height: 1.3;
}

/* Variation selects — AD look */
body.rb-product-page form.cart table.variations {
  width: 100%;
  border: 0;
}
body.rb-product-page form.cart table.variations th,
body.rb-product-page form.cart table.variations td {
  display: block;
  width: 100%;
  padding: 0;
  border: 0;
  background: transparent;
}
body.rb-product-page form.cart table.variations th.label {
  padding-bottom: 0.3rem;
  font-family: "Outfit", system-ui, sans-serif;
  font-size: 0.8rem;
  font-weight: 700;
  color: #374151;
  text-align: left;
}
body.rb-product-page form.cart table.variations td.value {
  padding-bottom: 0.75rem;
}
body.rb-product-page form.cart table.variations select,
body.rb-product-page form.variations_form select {
  width: 100% !important;
  max-width: 100% !important;
  height: 48px;
  padding: 0 2.4rem 0 0.9rem !important;
  border: 1px solid #cfd4da !important;
  border-radius: 6px !important;
  background: #fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath fill='%236b7280' d='M1 1l5 5 5-5'/%3E%3C/svg%3E") no-repeat right 0.9rem center / 12px !important;
  appearance: none !important;
  -webkit-appearance: none !important;
  font-size: 0.95rem !important;
  font-weight: 600 !important;
  color: #1f2937 !important;
  box-shadow: none !important;
}
body.rb-product-page form.cart table.variations select:focus {
  border-color: #22c55e !important;
  outline: none !important;
  box-shadow: 0 0 0 2px rgba(34, 197, 94, 0.15) !important;
}
body.rb-product-page .reset_variations {
  display: inline-block;
  margin-top: 0.25rem;
  font-size: 0.78rem;
}

/* Beat Elementor Pro add-to-cart row flex (qty | button side-by-side) */
body.rb-product-page :is(
  .elementor-widget-woocommerce-product-add-to-cart,
  .woocommerce div.product .elementor-widget-woocommerce-product-add-to-cart,
  .elementor-widget-wc-add-to-cart,
  .woocommerce div.product .elementor-widget-wc-add-to-cart
) form.cart.variations_form .woocommerce-variation-add-to-cart,
body.rb-product-page :is(
  .elementor-widget-woocommerce-product-add-to-cart,
  .woocommerce div.product .elementor-widget-woocommerce-product-add-to-cart,
  .elementor-widget-wc-add-to-cart,
  .woocommerce div.product .elementor-widget-wc-add-to-cart
) form.cart:not(.grouped_form):not(.variations_form),
body.rb-product-page form.cart.variations_form .woocommerce-variation-add-to-cart,
body.rb-product-page form.cart:not(.grouped_form):not(.variations_form) {
  display: flex !important;
  flex-direction: column !important;
  flex-wrap: nowrap !important;
  align-items: stretch !important;
  gap: 0.75rem !important;
  width: 100% !important;
}
body.rb-product-page :is(
  .elementor-widget-woocommerce-product-add-to-cart,
  .elementor-widget-wc-add-to-cart
) form.cart .quantity,
body.rb-product-page :is(
  .elementor-widget-woocommerce-product-add-to-cart,
  .elementor-widget-wc-add-to-cart
) form.cart .single_add_to_cart_button {
  float: none !important;
  width: 100% !important;
  max-width: 100% !important;
  margin: 0 !important;
}

/* Quantity hidden until variation chosen */
body.rb-product-page form.variations_form:not(.is-variation-ready) .quantity,
body.rb-product-page form.variations_form:not(.is-variation-ready) .rb-ad-qty {
  display: none !important;
}
body.rb-product-page form.variations_form.is-variation-ready .quantity,
body.rb-product-page form.variations_form.is-variation-ready .rb-ad-qty,
body.rb-product-page form.cart:not(.variations_form) .quantity,
body.rb-product-page form.cart:not(.variations_form) .rb-ad-qty {
  display: flex !important;
}

/* AD: quantity on its own row, button on the next row (not side-by-side) */
body.rb-product-page form.cart .woocommerce-variation-add-to-cart,
body.rb-product-page form.cart .single_variation_wrap .woocommerce-variation-add-to-cart,
body.rb-product-page form.cart.variations_form .woocommerce-variation-add-to-cart-enabled,
body.rb-product-page form.cart .woocommerce-variation-add-to-cart-button,
body.rb-product-page .elementor-add-to-cart form.cart .woocommerce-variation-add-to-cart {
  display: flex !important;
  flex-direction: column !important;
  flex-wrap: nowrap !important;
  align-items: stretch !important;
  gap: 0.75rem !important;
  float: none !important;
  width: 100% !important;
}
body.rb-product-page form.cart.variations_form,
body.rb-product-page form.simple.cart,
body.rb-product-page form.cart:not(.variations_form) {
  display: flex !important;
  flex-direction: column !important;
  align-items: stretch !important;
  gap: 0.65rem !important;
}
body.rb-product-page form.cart .quantity,
body.rb-product-page form.cart .rb-ad-qty {
  float: none !important;
  flex-direction: column !important;
  align-items: flex-start !important;
  gap: 0.35rem;
  margin: 0 !important;
  width: 100% !important;
  max-width: 100% !important;
}
body.rb-product-page form.cart .single_add_to_cart_button,
body.rb-product-page form.cart button.single_add_to_cart_button {
  float: none !important;
  display: block !important;
  width: 100% !important;
  margin: 0 !important;
  clear: both !important;
  background: #e11d2e !important;
  border-color: #e11d2e !important;
  color: #fff !important;
  font-family: "Outfit", system-ui, sans-serif !important;
  font-weight: 800 !important;
  text-transform: uppercase;
  letter-spacing: 0.03em;
  padding: 0.95rem 1.2rem !important;
  border-radius: 6px !important;
  box-shadow: none !important;
}
body.rb-product-page .single_add_to_cart_button:hover,
body.rb-product-page form.cart .single_add_to_cart_button:hover {
  background: #c41222 !important;
  border-color: #c41222 !important;
  color: #fff !important;
}
body.rb-product-page .single_add_to_cart_button.disabled,
body.rb-product-page .single_add_to_cart_button:disabled {
  opacity: 0.45 !important;
}
/* Prefer AD stars over default Woo rating widget */
body.rb-product-page .woocommerce-product-rating {
  display: none !important;
}

/* AD quantity +/- (PHP-rendered inside .quantity) */
body.rb-product-page .rb-ad-qty__label,
body.rb-product-page form.cart .quantity .rb-ad-qty__label {
  font-family: "Outfit", system-ui, sans-serif;
  font-size: 0.85rem;
  font-weight: 700;
  color: #1f2937;
  display: block;
  width: 100%;
}
body.rb-product-page .rb-ad-qty__ctrl,
body.rb-product-page form.cart .quantity .rb-ad-qty__ctrl {
  display: inline-flex;
  align-items: stretch;
  border: 1px solid #cfd4da;
  border-radius: 6px;
  overflow: hidden;
  background: #fff;
}
body.rb-product-page .rb-ad-qty__btn {
  width: 42px;
  border: 0;
  background: #fff;
  color: #111 !important;
  font-size: 1.15rem;
  font-weight: 600;
  cursor: pointer;
  line-height: 1;
  padding: 0;
}
body.rb-product-page .rb-ad-qty__btn:hover {
  background: #f3f4f6;
  color: #111 !important;
}
body.rb-product-page .rb-ad-qty__ctrl .qty,
body.rb-product-page .rb-ad-qty__ctrl input.qty,
body.rb-product-page form.cart .quantity .rb-ad-qty__ctrl input.qty {
  width: 52px !important;
  min-width: 52px;
  margin: 0 !important;
  border: 0 !important;
  border-left: 1px solid #cfd4da !important;
  border-right: 1px solid #cfd4da !important;
  border-radius: 0 !important;
  text-align: center !important;
  font-weight: 700 !important;
  font-size: 0.95rem !important;
  height: 42px !important;
  box-shadow: none !important;
  background: #fff !important;
  -moz-appearance: textfield;
}
body.rb-product-page .rb-ad-qty__ctrl input.qty::-webkit-outer-spin-button,
body.rb-product-page .rb-ad-qty__ctrl input.qty::-webkit-inner-spin-button {
  -webkit-appearance: none;
  margin: 0;
}
body.rb-product-page form.cart .quantity .screen-reader-text {
  position: absolute !important;
  width: 1px;
  height: 1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
}

/* Tight stack: stock/SKU → member join → options */
body.rb-product-page .rb-ad-stock {
  margin: 0 0 0.15rem !important;
}
body.rb-product-page .rb-member-price {
  margin: 0.15rem 0 0.4rem !important;
  border-radius: 999px;
  padding: 0.3rem 0.4rem 0.3rem 0.75rem;
}
body.rb-product-page .rb-member-price__join,
body.rb-product-page .rb-member-price a.rb-member-price__join,
body.rb-product-page .rb-member-price a.rb-member-price__join:link,
body.rb-product-page .rb-member-price a.rb-member-price__join:visited {
  color: #ffe030 !important;
  font-weight: 800;
  font-size: 0.82rem;
  text-decoration: underline;
  text-underline-offset: 2px;
}
body.rb-product-page .rb-member-price__join:hover,
body.rb-product-page .rb-member-price a.rb-member-price__join:hover,
body.rb-product-page .rb-member-price__join:focus,
body.rb-product-page .rb-member-price a.rb-member-price__join:focus,
body.rb-product-page .rb-member-price__join:active,
body.rb-product-page .rb-member-price a.rb-member-price__join:active {
  color: #ffffff !important;
  text-decoration: underline;
}

/* Description accordion look */
body.rb-product-page .woocommerce-tabs ul.tabs {
  padding: 0;
  margin: 0 0 1rem;
  border-bottom: 1px solid #e6eaed;
}
body.rb-product-page .woocommerce-tabs .panel {
  margin: 0 0 1.5rem;
  padding: 0.5rem 0 1rem;
}
body.rb-product-page .woocommerce-Tabs-panel--description h2:first-child {
  font-family: "Outfit", system-ui, sans-serif;
  font-size: 1.2rem;
}

@media (max-width: 900px) {
  body.rb-product-classic.woocommerce div.product > .rb-product-media,
  body.rb-product-page.woocommerce div.product > .rb-product-media,
  body.rb-product-classic.woocommerce div.product > .woocommerce-product-gallery,
  body.rb-product-classic.woocommerce div.product > .summary.entry-summary,
  body.rb-product-classic.woocommerce div.product > .summary,
  body.rb-product-page.woocommerce div.product:has(> .summary) > .woocommerce-product-gallery,
  body.rb-product-page.woocommerce div.product:has(> .woocommerce-product-gallery) > .summary,
  body.rb-product-page.woocommerce div.product:has(> .rb-product-media) > .summary {
    float: none !important;
    width: 100% !important;
  }
}

/* —— Frequently bought —— */
.rb-fbt {
  margin: 2rem 0;
  padding: 1.25rem 0;
}
.rb-fbt__title {
  margin: 0 0 1rem;
  text-align: center;
  font-family: "Outfit", system-ui, sans-serif;
  font-size: 1.15rem;
  font-weight: 700;
  color: #5c6673;
}
.rb-fbt__track {
  display: flex;
  gap: 0.75rem;
  overflow-x: auto;
  padding-bottom: 0.5rem;
  scroll-snap-type: x mandatory;
  -webkit-overflow-scrolling: touch;
}
.rb-fbt__card {
  flex: 0 0 min(200px, 72vw);
  display: flex;
  flex-direction: column;
  border: 1px solid #e6eaed;
  background: #fff;
  scroll-snap-align: start;
  padding-bottom: 0.75rem;
}
.rb-fbt__media {
  position: relative;
  display: block;
  aspect-ratio: 1;
  background: #f5f7f8;
  overflow: hidden;
}
.rb-fbt__media img {
  width: 100%;
  height: 100%;
  object-fit: contain;
}
.rb-fbt__badge {
  position: absolute;
  top: 0.4rem;
  right: 0.4rem;
  z-index: 1;
  width: 2.6rem;
  height: 2.6rem;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  background: #e11d48;
  color: #fff;
  font-size: 0.58rem;
  font-weight: 800;
  text-align: center;
  line-height: 1.1;
}
.rb-fbt__name {
  margin: 0.55rem 0.6rem 0.25rem;
  color: #1a2330;
  font-size: 0.82rem;
  font-weight: 600;
  text-decoration: none;
  line-height: 1.25;
}
.rb-fbt__price {
  margin: 0 0.6rem 0.55rem;
  font-family: "Outfit", system-ui, sans-serif;
  font-weight: 800;
  font-size: 0.9rem;
}
.rb-fbt__btn {
  margin: auto 0.6rem 0;
  display: inline-flex;
  justify-content: center;
  padding: 0.55rem 0.7rem;
  background: #00b7c5;
  color: #fff !important;
  font-family: "Outfit", system-ui, sans-serif;
  font-size: 0.75rem;
  font-weight: 800;
  text-transform: uppercase;
  text-decoration: none;
  border-radius: 2px;
}
.rb-fbt__btn:hover { background: #0094a0; color: #fff !important; }

/* —— Shared buttons —— */
.rb-btn-ghost,
.rb-btn-secure {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.4rem;
  padding: 0.8rem 1.1rem;
  font-family: "Outfit", system-ui, sans-serif;
  font-weight: 800;
  font-size: 0.88rem;
  text-decoration: none;
  border-radius: 2px;
  border: 0;
  cursor: pointer;
}
.rb-btn-ghost {
  background: #eef1f3;
  color: #1a2330;
}
.rb-btn-ghost:hover { background: #e2e7ea; color: #1a2330; }
.rb-btn-secure {
  background: #00b7c5;
  color: #fff !important;
}
.rb-btn-secure:hover { background: #0094a0; color: #fff !important; }

/* —— Add to basket modal —— */
.rb-atc-modal[hidden] { display: none !important; }
.rb-atc-modal {
  position: fixed;
  inset: 0;
  z-index: 10050;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 1rem;
}
.rb-atc-modal__backdrop {
  position: absolute;
  inset: 0;
  background: rgba(10, 16, 22, 0.55);
}
.rb-atc-modal__dialog {
  position: relative;
  z-index: 1;
  width: min(100%, 720px);
  max-height: min(92vh, 900px);
  overflow: auto;
  background: #fff;
  border-radius: 4px;
  box-shadow: 0 20px 50px rgba(0, 0, 0, 0.25);
  padding: 1rem 1.15rem 1.15rem;
}
.rb-atc-modal__head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
  margin-bottom: 0.75rem;
}
.rb-atc-modal__head h2 {
  margin: 0;
  font-family: "Outfit", system-ui, sans-serif;
  font-size: 1.25rem;
  font-weight: 800;
}
.rb-atc-modal__x {
  border: 0;
  background: transparent;
  font-size: 1.6rem;
  line-height: 1;
  cursor: pointer;
  color: #5c6673;
}
.rb-atc-modal__ok {
  margin-bottom: 1rem;
  padding: 0.75rem 0.9rem;
  background: #e7f8f4;
  border: 1px solid #0bb3aa;
  color: #044e4a;
  border-radius: 4px;
  font-size: 0.92rem;
  line-height: 1.4;
}
.rb-atc-modal__ok a { color: #044e4a; font-weight: 700; }
.rb-atc-modal__foot {
  display: flex;
  flex-wrap: wrap;
  gap: 0.65rem;
  justify-content: flex-end;
  margin-top: 1rem;
  padding-top: 0.85rem;
  border-top: 1px solid #e6eaed;
}
.rb-atc-modal .rb-fbt { margin: 0.5rem 0 0; padding: 0; }
.rb-atc-modal .rb-fbt__card { flex-basis: min(160px, 58vw); }

@media (max-width: 640px) {
  .rb-atc-modal__foot {
    flex-direction: column;
  }
  .rb-atc-modal__foot .rb-btn-ghost,
  .rb-atc-modal__foot .rb-btn-secure {
    width: 100%;
  }
}

/* —— Mini basket (header) —— */
.rb-mini-basket[hidden] { display: none !important; }
.rb-mini-basket {
  position: fixed;
  inset: 0;
  z-index: 10060;
}
.rb-mini-basket__backdrop {
  position: absolute;
  inset: 0;
  background: rgba(10, 16, 22, 0.4);
}
.rb-mini-basket__panel {
  position: absolute;
  top: 0;
  right: 0;
  width: min(100%, 400px);
  height: 100%;
  background: #fff;
  box-shadow: -8px 0 30px rgba(0, 0, 0, 0.18);
  overflow: auto;
  padding: 0;
}
.rb-mini-basket__head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0.85rem 1rem;
  background: #f3f5f7;
  font-family: "Outfit", system-ui, sans-serif;
  font-weight: 700;
}
.rb-mini-basket__close {
  border: 0;
  background: transparent;
  font-size: 1.5rem;
  cursor: pointer;
  line-height: 1;
}
.rb-mini-basket__sub {
  display: flex;
  justify-content: space-between;
  padding: 0.85rem 1rem;
  font-size: 0.95rem;
  border-bottom: 1px solid #e6eaed;
}
.rb-mini-basket__actions {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0.5rem;
  padding: 0.75rem 1rem;
}
.rb-mini-basket__actions .rb-btn-ghost,
.rb-mini-basket__actions .rb-btn-secure {
  width: 100%;
  padding: 0.7rem 0.5rem;
  font-size: 0.78rem;
}
.rb-mini-basket__items {
  list-style: none;
  margin: 0;
  padding: 0 1rem 1.25rem;
}
.rb-mini-basket__item {
  display: grid;
  grid-template-columns: 72px 1fr;
  gap: 0.65rem;
  padding: 0.75rem 0;
  border-bottom: 1px solid #eef1f3;
}
.rb-mini-basket__thumb img {
  width: 72px;
  height: 72px;
  object-fit: contain;
  background: #f5f7f8;
}
.rb-mini-basket__meta {
  display: grid;
  gap: 0.2rem;
  align-content: start;
  font-size: 0.82rem;
}
.rb-mini-basket__meta a {
  color: #1a2330;
  text-decoration: none;
  font-weight: 600;
  line-height: 1.25;
}
.rb-mini-basket__empty {
  padding: 1.5rem 1rem;
  text-align: center;
  color: #5c6673;
}
.rb-mini-basket__shop {
  display: block;
  margin: 0 1rem 1.5rem;
  text-align: center;
  color: #00b7c5;
  font-weight: 700;
}

/* —— Cart page polish —— */
body.rb-cart-page .woocommerce {
  max-width: 1240px;
  margin-inline: auto;
}
body.rb-cart-page .wc-proceed-to-checkout a.checkout-button {
  background: #00b7c5 !important;
  color: #fff !important;
  font-family: "Outfit", system-ui, sans-serif !important;
  font-weight: 800 !important;
  text-transform: none !important;
  border-radius: 2px !important;
}
body.rb-cart-page .wc-proceed-to-checkout a.checkout-button::before {
  content: "🔒 ";
}
body.rb-modal-open {
  overflow: hidden;
}

body.rb-modal-open {
  overflow: hidden;
}
