.bs-marquee__viewport.bs-marquee--stopped {
    animation: none;
    will-change: auto;
}

.rbb-slick-product-thumb {
    position: relative;
}
.thumb-more-arrow {
    position: absolute;
    left: 0;
    right: 0;
    z-index: 2;
    display: flex;
    align-items: center;
    justify-content: center;
    height: 32px;
    padding: 0;
    border: none;
    cursor: pointer;
    opacity: 0.85;
    transition: opacity 0.2s;
    pointer-events: auto;
}
.thumb-more-arrow--up {
    top: -7px;
    background: linear-gradient(to bottom, rgba(255, 255, 255, 0.95), rgba(255, 255, 255, 0));
}
.thumb-more-arrow--down {
    bottom: -7px;
    background: linear-gradient(to top, rgba(255, 255, 255, 0.95), rgba(255, 255, 255, 0));
}
.thumb-more-arrow:hover {
    opacity: 1;
}
.thumb-more-arrow svg {
    width: 28px;
    height: 28px;
    color: #333;
    background: #fff;
    border-radius: 50px;
    box-shadow: 0 0 8px 2px #00000021;
}
.thumb-more-arrow--up svg {
    transform: rotate(180deg);
}

.bs-short-description-checkmarks,
.secondary-checkmarks {
    --bs-checkmark-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23009669' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 6 9 17l-5-5'/%3E%3C/svg%3E");
}
.bs-short-description-checkmarks {
    --bs-checkmark-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none'%3E%3Cpath d='M8 0a8 8 0 0 0-8 8 8 8 0 0 0 8 8 8 8 0 0 0 8-8 8 8 0 0 0-8-8m4.565 6.166-5.599 5.6a.8.8 0 0 1-.565.233.8.8 0 0 1-.566-.233l-2.4-2.4a.796.796 0 0 1 0-1.13.796.796 0 0 1 1.132 0L6.4 10.068l5.033-5.034a.8.8 0 0 1 1.13 1.13' fill='%2301693a'/%3E%3C/svg%3E");
    margin-bottom: 20px;
}
.bs-short-description-checkmarks ul {
    list-style: none;
    margin-left: 0;
    padding-left: 0;
}
.bs-short-description-checkmarks ul li,
.single-sticky .bs-short-description-checkmarks ul li {
    position: relative;
    padding-left: 1.75em;
    list-style: none;
}
.bs-short-description-checkmarks ul li::before,
.single-sticky .bs-short-description-checkmarks ul li::before {
    display: block;
    content: "";
    position: absolute;
    left: 0;
    top: 0.25em;
    width: 1.15em;
    height: 1.15em;
    background: var(--bs-checkmark-icon) no-repeat center / contain;
}
/* YITH points message ("Purchase this item and get N points"), placed right under the
   add to cart button (see inc/woocommerce.php). A soft card in the checkmarks' green. The plugin
   sets its colours inline from its settings, hence !important on those two. Display is
   left alone so the plugin's .hide (display:none !important) still swaps the product and
   variation messages. */
.single-product .type-product.product .yith-par-message,
.single-product .type-product.product .yith-par-message-variation {
    position: relative;
    display: block;
    width: 100%;
    box-sizing: border-box;
    margin: 12px 0 20px;
    padding: 12px 16px 12px 44px;
    border: 1px solid #cfe3d6;
    border-radius: 10px;
    background-color: #f1f7f3 !important;
    color: #1d2b22 !important;
    font-size: 14px;
    line-height: 1.45;
    text-align: left;
}
/* The icon is drawn here rather than by the plugin's <img> (stripped in inc/woocommerce.php):
   that image had no size until it downloaded, so the text jumped sideways when it arrived. */
.single-product .type-product.product .yith-par-message::before,
.single-product .type-product.product .yith-par-message-variation::before {
    content: "";
    position: absolute;
    left: 16px;
    top: 50%;
    width: 18px;
    height: 18px;
    transform: translateY(-50%);
    background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2301693a' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='8' r='6'/%3E%3Cpath d='M15.477 12.89 17 22l-5-3-5 3 1.523-9.11'/%3E%3C/svg%3E") no-repeat center / contain;
}
.single-product .type-product.product .yith-par-message strong,
.single-product .type-product.product .yith-par-message-variation strong {
    margin: 0 2px;
    color: #01693a;
    font-weight: 700;
}
.bs-sd-teaser {
    margin-top: 20px;
    margin-bottom: 20px;
    line-height: 1.5;
}
.bs-sd-readmore {
    display: inline;
    margin: 0;
    padding: 0;
    background: none;
    border: none;
    cursor: pointer;
    font-weight: 600;
    text-decoration: underline;
    color: var(--rbb-general-link-color);
    white-space: nowrap;
}

.accordion-content {
    padding-right: 3rem;
}
.accordion-content.is-open {
    padding-bottom: 0.8rem;
}
.accordion-content.is-open p {
    margin-bottom: 0;
}
.container .woocommerce-tabs .woocommerce-tabs-panel h2:nth-child(2) {
    margin-top: 0;
}

.rbb-swatch__dropdown-select {
    display: none;
}
.attribute-box-wrapper[data-attribute-name] {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    row-gap: 16px;
}
.attribute-box-wrapper[data-attribute-name] .attribute-box {
    padding-top: 14px;
    padding-bottom: 10px;
}
.attribute-box-wrapper .attribute-box {
    border-width: 2px;
    border-radius: 6px;
    flex: 1;
    min-height: 50px;
    transition: box-shadow 0.1s linear;
}
.attribute-box .badge {
    top: -12px;
    line-height: 1;
    white-space: nowrap;
}
.attribute-box-wrapper .attribute-box:hover {
    border-color: #aaa;
    outline-color: #aaa;
}
.attribute-box-wrapper .attribute-box.selected,
.attribute-box-wrapper .attribute-box.selected:hover {
    background-color: #ebf7ed;
    border-color: #14ba33;
    outline-color: #14ba33;
    box-shadow: 0px 4px 10px rgba(0, 0, 0, 0.2);
}
.attribute-box-wrapper .attribute-box.selected .select-none {
    font-weight: 600;
}
.secondary-checkmarks {
    background-color: #f3f3f3;
    padding: 10px;
    font-size: 0.8rem;
    width: 100%;
}
form.cart.fixed {
    background-color: white;
    padding: 15px 15px 10px;
    box-shadow: 0 -2px 5px rgba(0, 0, 0, 0.1);
    z-index: 2000;
    max-height: 90dvh;
    overflow-y: scroll;
    margin-bottom: 0;
}
.secondary-checkmarks .secondary-checkmark::before {
    content: "";
    position: absolute;
    left: 0;
    top: 0.2em;
    width: 1.1em;
    height: 1.1em;
    background: var(--bs-checkmark-icon) no-repeat center / contain;
}
.fixed .secondary-checkmarks,
.fixed .bs-product-content-blocks {
    display: none;
}
.transitioning {
    transition: transform 0.3s ease-in-out;
}

form.cart.fixed.hide {
    transform: translateY(150%);
}
.single-product .product-summary form .single_add_to_cart_button {
    width: 100%;
    margin-left: 0;
}
.pseudo-buy-now {
    padding: 10px 15px;
    background-color: white;
}
.pseudo-buy-now span{
    margin-left: 0;
    transition: .3s;
}

/* Mobile sticky add to cart bar */
.bs-sticky-atc {
    position: fixed;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 1999;
    background: #fff;
    box-shadow: 0 -2px 8px rgba(0, 0, 0, 0.12);
    transform: translateY(calc(100% + 80px));
    opacity: 0;
    visibility: hidden;
    transition: transform 0.35s ease, opacity 0.25s ease, visibility 0s linear 0.35s;
}
.bs-sticky-atc.is-visible {
    transform: none;
    opacity: 1;
    visibility: visible;
    transition-delay: 0s;
}
.bs-sticky-atc__inner {
    display: flex;
    align-items: stretch;
    gap: 10px;
    padding: 10px 15px;
}
@media screen and (max-width: 365px) {
    .bs-sticky-atc__inner {
        gap: 5px;
    }
}
.bs-sticky-atc__select {
    position: relative;
    flex: 6 1 0;
    min-width: 0;
}
.bs-sticky-atc__trigger {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    width: 100%;
    height: 100%;
    min-height: 52px;
    padding: 6px 14px 6px 22px;
    background: #fff;
    color: var(--rbb-general-heading-color, #000);
    border: 1.5px solid var(--rbb-general-primary-color, #000);
    border-radius: 56px;
    text-align: left;
    cursor: pointer;
}
.bs-sticky-atc__text,
.bs-sticky-atc__option {
    display: flex;
    flex-direction: column;
    min-width: 0;
}
.bs-sticky-atc__label {
    font-weight: 700;
    font-size: 0.85rem;
    line-height: 1.2;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
.bs-sticky-atc__yield {
    font-weight: 400;
    opacity: 0.75;
}
.bs-sticky-atc__price {
    font-size: 0.75rem;
    line-height: 1.2;
    opacity: 0.75;
}
.bs-sticky-atc__price:empty {
    display: none;
}
.bs-sticky-atc__chevron {
    flex: none;
    transition: transform 0.2s ease;
}
.bs-sticky-atc.is-open .bs-sticky-atc__chevron {
    transform: rotate(180deg);
}
.bs-sticky-atc__options {
    position: absolute;
    left: 0;
    right: 0;
    bottom: calc(100% + 3px);
    margin: 0;
    padding: 6px;
    max-height: 50dvh;
    min-width: 210px;
    overflow-y: auto;
    list-style: none;
    background: #fff;
    border: 1px solid #e6e6e6;
    border-radius: 16px;
    box-shadow: 0 -4px 16px rgba(0, 0, 0, 0.15);
}
.bs-sticky-atc__option {
    padding: 10px 16px;
    border-radius: 10px;
    cursor: pointer;
}
.bs-sticky-atc__option[aria-selected="true"],
.bs-sticky-atc__option:focus-visible {
    background: #f3f3f3;
}
.bs-sticky-atc__add {
    flex: 4 1 0;
    min-height: 52px;
    padding: 0;
    border: 0;
    border-radius: 56px;
    background-image: linear-gradient(90deg, var(--e-global-color-primary) 0%, var(--e-global-color-accent) 100%);
    color: #fff;
    font-weight: 700;
    letter-spacing: 0.06em;
    cursor: pointer;
}
.bs-sticky-atc__add.is-disabled {
    opacity: 0.5;
}
@media (min-width: 768px) {
    .bs-sticky-atc {
        display: none;
    }
}

.bs-close {
    background: #ebebeb;
    color: #000;
    line-height: 3rem;
}
.quantity.hidden {
    display: none !important;
}
.yield-info-icon {
    width: 1rem;
    height: 1rem;
    top: 2px;
}
.yield-info-message {
    background-color: white;
    top: calc(100% + 10px);
    left: 50%;
    width: 300px;
    display: none;
    transform: translateX(-50%);
    font-size: .7rem;
}
.yield-info-message::before,
.yield-info-message::after {
    content: '';
    position: absolute;
    left: 50%;
    transform: translateX(-50%);
    width: 0;
    height: 0;
    border-left: 8px solid transparent;
    border-right: 8px solid transparent;
}
.yield-info-message::before {
    bottom: 100%;
    border-bottom: 8px solid #e5e7eb;
}
.yield-info-message::after {
    bottom: calc(100% - 1px);
    border-bottom: 8px solid white;
}
@media (max-width: 1200px) {
    .yield-info-message {
        left: auto;
        right: -30px;
        transform: none;
        max-width: calc(100vw - 20px);
    }
    .yield-info-message::before,
    .yield-info-message::after {
        left: auto;
        right: 30px;
        transform: none;
    }
}
.yield-info-icon:focus .yield-info-message,
.yield-info-icon:focus-within .yield-info-message,
.yield-info-icon:hover .yield-info-message,
.yield-info-icon:active .yield-info-message {
    display: inline-block;

}
.rbb-swatches__single .variations .rbb-swatch__wrap {
    padding-right: 0;
    width: 100%;
}
.details-question {
    color: var(--rbb-general-heading-color);
}
.single-product .product-summary .product_title{
    padding-bottom: 10px;
    padding-right: 45px;
    margin-top: 0;
    margin-bottom: 0;
    font-size: 3rem;
    line-height: 3.5rem;
}
#rbb-gallery-lightbox .woosw-btn {
    display: none;
    position: absolute;
    bottom: 34px;
    right: 12px;
    z-index: 20;
    width: 40px;
    height: 40px;
    line-height: 40px;
    text-align: center;
    border-radius: 100%;
    background: #fff;
    color: #afafaf;
    border: 1px solid var(--rbb-general-button-bg-color);
    box-shadow: 0 1px 5px rgba(0, 0, 0, 0.18);
    font-size: 18px;
    transition: .3s;
    justify-content: center;
    align-items: center;
}
#rbb-gallery-lightbox .woosw-btn.woosw-added,
#rbb-gallery-lightbox .woosw-btn.woosw-btn-added{
    color: #bb0a1e;
}
#rbb-gallery-lightbox .woosw-btn .woosw-btn-icon:before {
    content: var(--rbb-wishlist-general-icon);
    font-family: rbb-font, serif;
    font-size: 85%;
}
#rbb-gallery-lightbox .woosw-btn .woosw-btn-icon {
    position: relative;
    animation: none;
}
#rbb-gallery-lightbox .woosw-btn .woosw-btn-icon:after {
    content: "";
    position: absolute;
    left: 50%;
    top: 50%;
    width: 15px;
    height: 15px;
    transform: translate(-50%, -50%);
    background: var(--rbb-button-loading);
    background-size: cover;
    opacity: 0;
}
#rbb-gallery-lightbox .woosw-btn.woosw-adding .woosw-btn-icon {
    display: grid;
    animation: none;
}
#rbb-gallery-lightbox .woosw-btn.woosw-adding .woosw-btn-icon:before {
    opacity: 0;
}
#rbb-gallery-lightbox .woosw-btn.woosw-adding .woosw-btn-icon:after {
    opacity: 1;
}
.single-product .product-summary .woocommerce-product-rating .woocommerce-review-link{
    color: var(--rbb-general-link-color);
    padding-left: 0;
    top: 0;
}
.single-product .product-summary .woocommerce-product-rating {
    margin-bottom: 14px;
}
/* Reserves the variation price line. WooCommerce only injects
   `.woocommerce-variation-price` once wc-add-to-cart-variation.js has resolved
   the default variation; 24px was the height of the *empty* block, so the
   price still grew it to 42px on arrival and shoved the add-to-cart button
   down by 18px. Reserve the filled height instead. */
.single-product .product-summary .variations_form .single_variation{
    min-height: 42px;
}
.single-product .product-summary .variations_form .variations .label{
    font-size: 1.15rem;
}
.single-product .product-summary .woocommerce-product-details__short-description {
    margin-bottom: 20px;
    margin-top: 20px;
}
.single-product .product-summary .woocommerce-product-details__short-description span {
    color: #101;
}
.single-product .product-summary .woocommerce-product-details__short-description p:first-of-type:not(:only-of-type) {
    margin-bottom: 0.75rem;
}
.single-product .product-summary .woocommerce-product-details__short-description p:first-of-type:not(:only-of-type),
.single-product .product-summary .woocommerce-product-details__short-description p:first-of-type:not(:only-of-type) span {
    font-weight: 600 !important;
}
.single-product .product-summary .price del {
    text-decoration-color: #d6d6d6;
    -webkit-text-decoration-thickness: 2px;
    text-decoration-thickness: 2px;
}
.single-product .product-summary .woocommerce-variation-price .price {
    display: flex;
    gap: 10px;
}
.single-product .product-summary .price{
    font-size: 1.6rem;
}
.single-sticky .woosc-btn {
    display: none;
}
.product_meta {
    display: none;
}
.woocommerce-tabs .woocommerce-tabs-panel h2 {
    display: block;
}
#reviews .woocommerce-Reviews-title {
    margin-top: 56px;
    /* Halve the default 20px (1.25rem) bottom margin so the login prompt sits
       closer to the "Customer Reviews" header. */
    margin-bottom: 10px;
}
.commentlist li {
    display: none;
}
.bs-aggregate-reviews-bar-value {
    background-color: var(--rbb-rating-icon-color);
}
ul.page-numbers {
    display: flex;
    justify-content: center;
}
.page-numbers svg {
    width: 20px;
    height: 20px;
    position: relative;
    right: -4px;
    top: 4px;
}
.page-numbers .prev svg{
    transform: rotate(180deg);
}

.rbb-product-thumbs,
.rbb-product-thumbs .rbb-slick-product-thumb,
.rbb-product-thumbs .rbb-slick-product-thumb .slick-list,
.rbb-product-thumbs .rbb-slick-product-thumb .slick-track,
.rbb-product-thumbs .rbb-slick-product-thumb .slick-slide,
.rbb-product-thumbs .rbb-slick-product-thumb .thumbnail,
.rbb-product-thumbs .rbb-slick-product-thumb .thumbnail img {
    opacity: 1 !important;
    visibility: visible !important;
}

.rbb-product-thumbs .rbb-slick-product-thumb:not(.slick-initialized) .slick-slide,
.rbb-product-thumbs .rbb-slick-product-thumb:not(.slick-initialized) .slick-list,
.rbb-product-thumbs .rbb-slick-product-thumb:not(.slick-initialized) .slick-track {
    display: block !important;
    opacity: 1 !important;
    visibility: visible !important;
}

.rbb-product-thumbs .rbb-slick-product-thumb .slick-slide:not(.slick-cloned) {
    opacity: 1 !important;
    visibility: visible !important;
}

.rbb-product-thumbs .rbb-slick-product-thumb .slick-slide .item,
.rbb-product-thumbs .rbb-slick-product-thumb .slick-slide .thumbnail,
.rbb-product-thumbs .rbb-slick-product-thumb .slick-slide img {
    opacity: 1 !important;
    visibility: visible !important;
    display: block !important;
}

/* ---------------------------------------------------------------------------
   Thumbnail strip — pre-init geometry (CLS)

   Until slick runs, the `.item` divs are plain blocks, so every thumbnail
   stacks vertically and the strip renders several times taller than the
   carousel it becomes. These rules give the un-initialised strip the same
   footprint slick settles on — five stacked thumbs on desktop, a single
   clipped row below that — so nothing shifts when the carousel takes over.

   The parent theme has an equivalent rule, but it is scoped to
   `.product-image .product-single__sticky .rbb-product-thumbs`, and in the
   scroll layout `product-single__sticky` sits on the strip itself rather than
   on an ancestor, so it never matches.

   Slide counts must stay in sync with `slidesToShow` in
   botanica-child/assets/js/single-product.js.
--------------------------------------------------------------------------- */

/* The images size themselves off `.slick-slider .slick-slide img`, so until
   slick runs they have no width at all: `aspect-ratio` then reserves nothing
   and an undecoded image falls back to the 300px replaced-element default.
   Giving them their eventual width up front means the box is reserved from
   first paint, before a single byte of image has arrived. */
.rbb-slick-product-thumb:not(.slick-initialized) .item img,
.rbb-product-gallery:not(.slick-initialized) .rbb-product-gallery__image img {
    display: block;
    width: 100%;
}

/* Only once slick has wrapped every `.item` in a `.slick-slide` does
   `.slick-slide .item .thumbnail` pick up its 1px border, which shrinks the
   image inside it. Stand it in beforehand. The first item carries `active`,
   which is the pre-init stand-in for `slick-current`. */
.rbb-slick-product-thumb:not(.slick-initialized) .item .thumbnail {
    border: 1px solid var(--rbb-general-button-bg-color);
}
.rbb-slick-product-thumb:not(.slick-initialized) .item.active .thumbnail {
    border-color: var(--rbb-general-secondary-color);
}

/* Desktop: vertical strip, slidesToShow 5. */
@media screen and (min-width: 1024px) {
    .rbb-slick-product-thumb:not(.slick-initialized) {
        overflow: hidden;
    }
    /* slick's own `.slick-vertical .slick-slide` rule puts a 1px transparent
       border on each slide, so it applies here but not to the horizontal
       strips below. Reserve it, or every thumbnail shrinks 2px on init. */
    .rbb-slick-product-thumb:not(.slick-initialized) .item {
        border: 1px solid transparent;
    }
    .rbb-slick-product-thumb:not(.slick-initialized) .item:nth-child(n + 6) {
        display: none;
    }
}

/* Tablet: horizontal strip, slidesToShow 3. */
@media screen and (max-width: 1023px) {
    .rbb-slick-product-thumb:not(.slick-initialized) {
        display: flex;
        flex-wrap: nowrap;
        overflow: hidden;
    }
    .rbb-slick-product-thumb:not(.slick-initialized) .item {
        flex: 0 0 33.3333%;
        flex: 0 0 round(up, calc(100% / 3 - 0.01px), 1px);
    }
}

/* Mobile: horizontal strip, slidesToShow 5.625. */
@media screen and (max-width: 767px) {
    .rbb-slick-product-thumb:not(.slick-initialized) .item {
        flex: 0 0 17.7778%;
        flex: 0 0 round(up, calc(100% / 5.625 - 0.01px), 1px);
    }
    /* On init the mobile branch of initSlickMobile() nudges `.slick-track`
       right by half the container padding (15px / 2) to line the first thumb
       up with the gallery image. Mirror it so the row does not slide sideways
       when slick takes over. */
    .rbb-slick-product-thumb:not(.slick-initialized) .item:first-child {
        margin-left: 7.5px;
    }
}

/* ---------------------------------------------------------------------------
   Main gallery — pre-init geometry (CLS)

   Same problem, larger blast radius: un-initialised, every gallery image
   stacks, so the column is several thousand pixels tall and everything below
   it jumps up when slick collapses it to a carousel. `#rbb-gallery-lightbox`
   already clips, so the gallery only needs the right number of images in view,
   matching `slidesToShow` for `.rbb-product-gallery` in
   botanica-child/assets/js/single-product.js: 2 stacked at 1024 and up, 1 from
   768 to 1023 (still vertical there — the carousel only turns horizontal at
   767, where `vertical: !isMobile` flips), and 1 per row below that.
--------------------------------------------------------------------------- */
/* The gallery runs vertically from 768 up, so slick's
   `.slick-vertical .slick-slide` border applies to it too. slick also sets the
   slide contents to `inline-block`, which parks them on the text baseline and
   leaves ~8px of descender space under each one — reproduce both, or the
   column comes out short and everything under it steps down on init. */
@media screen and (min-width: 768px) {
    .rbb-product-gallery:not(.slick-initialized) .rbb-product-gallery__image {
        display: inline-block;
        width: 100%;
        border: 1px solid transparent;
    }
}

@media screen and (min-width: 1024px) {
    /* The gallery column is a flex item with no basis, so its width is taken
       from the image inside it — which means it sits at the 300px default
       until the first image decodes. Let it claim the row instead, so the
       column is the right width before any image arrives. */
    #rbb-gallery-lightbox {
        flex: 1 1 auto;
        min-width: 0;
    }
    .rbb-product-gallery:not(.slick-initialized) .rbb-product-gallery__image:nth-child(n + 3) {
        display: none;
    }
}

/* 768–1023: still vertical, but only one image in view. */
@media screen and (min-width: 768px) and (max-width: 1023px) {
    .rbb-product-gallery:not(.slick-initialized) .rbb-product-gallery__image:nth-child(n + 2) {
        display: none;
    }
}

/* Below 768 the gallery turns horizontal, one image per view. */
@media screen and (max-width: 767px) {
    .rbb-product-gallery:not(.slick-initialized) {
        display: flex;
        flex-wrap: nowrap;
    }
    .rbb-product-gallery:not(.slick-initialized) .rbb-product-gallery__image {
        flex: 0 0 100%;
    }
    .rbb-product-gallery .slick-list {
        margin-left: -7.5px;
        margin-right: -7.5px;
    }
    .rbb-product-gallery .slick-slide {
        margin-left: 7.5px;
        margin-right: 7.5px;
    }
}

.bs-sd-toggle {
    position: absolute;
    width: 1px;
    height: 1px;
    margin: 0;
    opacity: 0;
    pointer-events: none;
}
.bs-sd-teaser {
    display: none;
}
@media screen and (max-width: 767px) {
    .bs-sd-teaser {
        display: block;
    }
    .single-product .product-summary .woocommerce-product-details__short-description,
    .bs-short-description-checkmarks {
        display: none;
    }
    .bs-sd-toggle:checked ~ .bs-sd-teaser {
        display: none;
    }
    .single-product .product-summary .bs-sd-toggle:checked ~ .woocommerce-product-details__short-description,
    .bs-sd-toggle:checked ~ .bs-short-description-checkmarks {
        display: block;
    }
    .bs-sd-toggle:focus-visible ~ .bs-sd-teaser .bs-sd-readmore {
        outline: 2px solid var(--rbb-general-link-color);
        outline-offset: 2px;
    }
}

.bs-review-left-side{
    border-radius: 999px;
}
#reviews #comments .commentlist li .comment_container .comment-text{
    padding: 0;
    width: 100%;
}
.comment_container img {
    width: 64px;
    height: 64px;
    object-fit: cover;
    display: block;
    border-radius: 50%;
}
#review_form_wrapper #review_form .comment-form-rating .stars a{
    font-size: 22px;
    top: -2px;
}
.comment_container .meta {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    width: 100%;
    margin: 0;
    padding: 0;
}
.bs-aggregate-reviews-bar{
    height: 10px;
    width: 170px;
}
#rbb-gallery-lightbox img:hover,
.pswp--click-to-zoom.pswp--zoom-allowed .pswp__img {
    cursor: url("../img/magnifying-glass-plus-thin.svg") 16 16, auto;
}
.pswp__img {
    object-fit: cover;
}
.bs-product-rating-review {
    flex-direction: column;
    align-items: center;
    justify-content: center;
}
#reviews .bs-product-rating-review {
    margin-bottom: 56px;
}
.bs-aggregate-average-value-wrapper {
    flex-direction: column;
    --rbb-rating-icon-size: 1.5rem;
}
.bs-aggregate-average-value {
    font-size: 3rem;
}

.comment_container .woocommerce-review__verified {
    margin-top: 0.25rem;
    gap: 2px;
}
.woocommerce-review__verified svg {
    position: relative;
    top: -1px;
}
.comment-text .description p {
    margin-bottom: 0;
}
#reviews #comments .commentlist li,
#reviews #comments .commentlist li .comment_container{
    margin-bottom: 25px;
}

.bs-aggregate-average-value-wrapper .star-rating{
    margin-top: 14px;
    margin-bottom: 10px;
}
.bs-aggregate-reviews-box {
    --rbb-rating-icon-size: 1.2rem;
}
.page-numbers li a, .page-numbers li span {
    width: 30px;
    height: 30px;
    line-height: 29px;
}
.single-product .product-summary .price ins {
    padding-right: 0;
}
.single-product .product-summary form .single_add_to_cart_button.loading:after {
    background-image: var(--rbb-button-loading-hover);
}
.pswp__bg {
    background: transparent;
}
.pswp__scroll-wrap {
    background-color: rgba(0, 0, 0, 0.8);
}
.pswp__scroll-wrap .pswp__container {
    background-color: transparent;
}
.pswp__button.pswp__button--close .pswp__icn {
    top: 0px;
}
.pswp__button--arrow--next .pswp__icn {
    margin-left: 1px;
}
.pswp__button--arrow--prev .pswp__icn {
    margin-right: 1px;
}
.slick-slider .slick-slide img {
    aspect-ratio: 1/1;
}


.terpene-horizontal-bar {
    height: 8px;
    width: 100%;
    background: #e5e5e5;
    border-radius: 4px;
    position: relative;
}

.terpene-horizontal-handle {
    height: 100%;
    background: #888;
    border-radius: 4px;
    position: absolute;
    left: 0;
    top: 0;
    cursor: grab;
    touch-action: none;
}
.terpene-horizontal-handle.dragging {
    transition: none !important;
}
.terpene-horizontal-handle.arrow-transition {
    transition: left 0.3s ease;
}
.slick-no-animate .slick-track {
    transition: none !important;
}
.comment-form-title .char-counter {
    top: 70%;
}

.ease-option-btn {
    border: 1px solid var(--rbb-general-primary-color);
    transition: background-color 0.3s, color 0.3s;
    cursor: pointer;
    position: relative;
    overflow: hidden;
}

.ease-option-btn:hover {
    border-color: var(--rbb-general-primary-color, #4CAF50);
}

.ease-option-btn.active {
    background: var(--rbb-general-primary-color, #000);
    border-color: var(--rbb-general-primary-color, #000);
    color: #fff;
}

.bs-harvest-input-wrapper:focus-within {
    border-color: var(--rbb-general-primary-color, #4CAF50);
}

.comment-form-region {
    position: relative;
}

body.logged-in .pac-container{
    margin-top: -32px !important;
}

.pac-container {
    margin-top: -4px !important;
    border-radius: 8px !important;
    box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06) !important;
    border: 1px solid #e5e7eb !important;
    z-index: 100000 !important;
}

.comment-form-region .pac-container {
    top: auto !important;
    margin-top: 4px !important;
}

.rbb-modal .bs-review-modal-dialog {
    width: 40%;
    max-width: 600px;
}

#bs-review-form-modal.backdrop {
    background-color: rgba(0, 0, 0, 0.5);
}

#bs-review-form-modal.backdrop .bs-review-modal-dialog {
    background-color: transparent;
}

#bs-review-form-modal.backdrop .bs-review-modal-dialog > * {
    background-color: white;
}

/* "Log in to leave a review" modal. Sized explicitly (the Tailwind arbitrary
   width classes in the markup aren't compiled) so the modal width stays constant
   when switching between the Login / Sign Up tabs. */
.rbb-modal .bs-login-modal-dialog {
    width: 90%;
    max-width: 450px;
}
#bs-login-modal.backdrop {
    background-color: rgba(0, 0, 0, 0.5);
}
#bs-login-modal.backdrop .bs-login-modal-dialog {
    background-color: transparent;
}
#bs-login-modal.backdrop .bs-login-modal-dialog > * {
    background-color: white;
}
/* Hide the modal header/close button (kept in markup so RisingBambooModal
   doesn't inject its own); modal still closes via backdrop click or Escape. */
#bs-login-modal .rbb-modal-header {
    display: none;
}

body.modal-open {
    overflow: hidden;
}
.harvest-unit-btn {
    color: #6b7280;
    background: white;
    border-color: #e5e7eb;
    cursor: pointer;
    position: relative;
    overflow: hidden;
}

.harvest-unit-btn:hover {
    border-color: var(--e-global-color-primary);
}

.harvest-unit-btn.active {
    background: var(--rbb-general-primary-color, #000);
    border-color: var(--rbb-general-primary-color, #000);
    color: #fff;
}

.bs-harvest-input-wrapper {
    border: none;
    background: transparent;
    padding: 0;
}

.bs-harvest-input-wrapper:focus-within {
    border: none;
}

.comment-form-comment {
    position: relative;
}

.comment-char-counter {
    background: rgba(255, 255, 255, 0.9);
    padding: 2px 6px;
    border-radius: 4px;
}

.comment-form-rating {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    margin-bottom: 1rem;
}

.comment-form-rating label {
    margin-bottom: 0;
    flex-shrink: 0;
}

.comment-form-rating .stars {
    margin: 0;
    padding: 0;
}

.comment-form-rating select {
    display: none;
}
#bs-review-form-modal .rbb-modal-header {
    display: flex !important;
    align-items: center;
    justify-content: space-between !important;
}
.woocommerce-tabs .panel h2.woocommerce-Reviews-title{
    margin-top: 0;
}
#reviews {
    padding: 5rem 0;
}
#bs-review-form-modal .rbb-modal-header .rbb-close-modal {
    flex-shrink: 0;
    cursor: pointer;
    background: transparent;
    border: none;
    padding: 0;
    margin: 0;
    line-height: 1;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 24px;
    height: 24px;
    top: 18px;
    right: 20px;
    color: #000;
    transition: color 0.2s ease;
}

#bs-review-form-modal .rbb-modal-header .rbb-close-modal:hover {
    color: #374151;
}

#bs-review-form-modal .rbb-modal-header .rbb-close-modal svg {
    width: 100%;
    height: 100%;
    display: block;
}
@keyframes slideUpFromBottom {
    from {
        transform: translateY(100%);
    }
    to {
        transform: translateY(0);
    }
}

:root {
    --bs-product-gradient: linear-gradient(180deg, #fff 0%, #c2dbcf 100%);
}
.bs-product-experience-section,
.bs-product-strain-section,
.bs-product-comparison-section {
    position: relative;
    width: 100%;
    overflow: hidden;
    z-index: 1;
    background:
        none left center no-repeat,
        none right center no-repeat,
        var(--bs-product-gradient);
    background-size:
        auto,
        auto,
        cover;
}
.bs-product-experience-section {
    padding: 0 0 10rem;
}
.bs-product-comparison-section {
    padding: 5rem 0 5rem 0;
}
.bs-product-strain-section {
    padding: 8rem 0 7rem;
    background-image:
        none,
        none,
        url('/wp-content/themes/botanica-child/assets/img/botanist-wave-bg.svg')
}

.bs-product-faq-accordion {
    position: relative;
    width: 100%;
    overflow: hidden;
    background-color: #e5f0ef;
    padding: 4rem 0 5rem;
}

.bs-product-experience-section ~ .bs-product-strain-section,
.bs-product-experience-section ~ .bs-product-strain-section ~ .bs-product-comparison-section{
    margin-top: -100px;
}
.bs-product-strain-section .bs-strain-content a,
.bs-product-experience-section .bs-accordion-item a {
    text-decoration: underline;
}
.single-product .woocommerce-tabs .panel .bs-product-experience-section h2,
.single-product .woocommerce-tabs .panel .bs-product-strain-section h2,
.single-product .product-blog-posts h2,
.single-product .bs-product-faq-accordion h2 {
    font-size: 2.5rem;
    line-height: 1.2;
    z-index: 1;
    position: relative;
    margin-bottom: 10px;
}

.single-product .bs-product-faq-accordion h2{
    margin-top: 0;
}

.single-product .product-blog-posts h2,
.single-product .bs-product-faq-accordion h2,
.single-product .bs-logo-carousel-band .bs-logo-carousel-band__title {
    margin-bottom: 36px;
}

.container .woocommerce-tabs .woocommerce-tabs-panel .bs-product-comparison-section h2:nth-child(1){
    margin-bottom: 0.7rem;
    font-size: 18px;
    text-transform: uppercase;
    letter-spacing: 2px;
    color: var(--rbb-general-secondary-color);
    line-height: 1.4;
}
.container .woocommerce-tabs .woocommerce-tabs-panel .bs-product-comparison-section h2:nth-child(2){
    z-index: 1;
    position: relative;
    font-weight: 700;
}
.bs-accordion-item {
    transition: all 0.2s ease;
}
.bs-strain-item{
    border-color: #bfbfbf;
}

.bs-accordion-item summary {
    list-style: none;
}

.bs-accordion-item summary::-webkit-details-marker {
    display: none;
}

.bs-accordion-header {
    cursor: pointer;
    user-select: none;
    outline: none;
}

.bs-accordion-icon {
    transition: transform 0.2s ease;
    flex-shrink: 0;
}

.bs-accordion-item > div {
    overflow: hidden;
    transition: max-height 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    max-height: 0;
}

/* inner .prose already has bottom padding; the instant is-open padding causes a jump */
.bs-accordion-item .accordion-content.is-open {
    padding-bottom: 0;
}

.bs-product-comparison-section .compare-middle-header,
.bs-product-comparison-section .compare-middle-section {
    background-color: #eaf1eb;
}

.bs-product-comparison-section .compare-middle-section {
    border-color: color-mix(in srgb, var(--rbb-general-primary-color, #163317) 20%, transparent);
}

.bs-product-comparison-section .compare-icon-check {
    background-color: #23873f;
}

.bs-product-comparison-section .compare-icon-cross {
    background-color: #d63a3a;
}

.bs-product-comparison-section .compare-middle-image {
    width: 100%;
    max-width: 80px;
    height: auto;
}

@media screen and (min-width: 768px) {
    .bs-product-comparison-section .compare-middle-image {
        max-width: 140px;
    }
}

summary {
    list-style: none;
}
.accordion-content {
    max-height: 0;
    overflow: hidden;
    transition: max-height 0.2s linear;
}
.faq-accordion-icon {
    transition: transform 0.2s linear;
}
svg.move {
    transform: rotate(180deg);
}
.rbb_woo_products_slider_content {
    margin-left: -6px;
}
.related.rbb_woo_products .rbb_woo_products_slider_content {
    margin-left: 0;
}
.attribute-box .woocommerce-variation-price_per_seed,
.attribute-box .per-seed-price {
    line-height: 1;
    color: #767676;
}
.attribute-box-wrapper[data-attribute-name="pa_seed-pack"] .attribute-box {
    align-items: flex-start;
    text-align: left;
    padding-left: 12px;
}
.attribute-box-wrapper[data-attribute-name="pa_seed-pack"] .attribute-box .select-none {
    font-weight: 700;
}
.attribute-box-wrapper[data-attribute-name="pa_seed-pack"] .attribute-box .badge {
    top: 10px;
    right: 8px;
}
@media (max-width: 399px) {
    .attribute-box-wrapper[data-attribute-name="pa_seed-pack"] .attribute-box .badge {
        font-size: 11px;
        padding: 4px 8px;
        right: 6px;
    }
}
.attribute-box .variation-savings {
    line-height: 1;
    font-weight: 700;
    color: rgb(21 154 75);
}
/* Related section: no hover effects on mobile/tablet */
@media (max-width: 1023px) {
    .related.rbb_woo_products .item-product:hover .bg-product:before {
        opacity: 0;
        visibility: hidden;
    }
    .related.rbb_woo_products .item-product:hover .product-popup {
        opacity: 0;
        transform: translateY(100%);
        visibility: hidden;
    }
}

.bs-content-content {
    position: fixed;
    top: 0;
    right: 0;
    height: 100%;
    width: 80%;
    max-width: 400px;
    background: white;
    transform: translateX(150%);
    transition: transform 300ms ease;
    padding: 2rem 1.5rem;
    box-shadow: -10px 0 20px rgba(0,0,0,0.1);
    z-index: 2001;
}
.bs-pop-over-backdrop {
    position: fixed;
    inset: 0;
    background: rgba(0,0,0,0.4);
    transition: opacity 250ms ease;
    z-index: 2001;
    display: none;
}
.bs-content-block.is-open .bs-content-content {
    transform: translateX(0);
    display: block;
}
.single-product:has(.is-open) .rbb-header-sticky {
    transform: translateY(-150%) !important;
}
.active .bs-pop-over-backdrop {
    display: block;
}
.woocommerce-product-attributes-item__value p {
    margin-bottom: 0;
}
.single-product .terpene-wrapper .terpene-title {
    margin-top: 0;
}
.terpene-background {
    background: radial-gradient(680px 300px at 50% 2%, rgba(198, 150, 60, .24), transparent 66%),
        radial-gradient(520px 280px at 88% 24%, rgba(139, 21, 56, .06), transparent 62%),
        radial-gradient(460px 280px at 15% 70%, rgba(198, 150, 60, .10), transparent 66%),
        linear-gradient(180deg, #fbf7ef 0%, #f6eddf 52%, #fbf7ef 100%);
}
.bs-review-avatar {
    background-color: #ede8e199;
}
.bs-aggregate-average-review-count {
    line-height: 1.2;
    font-size: 0.69rem;
}
.bs-aggregate-recommend-percent {
    margin-top: 8px;
    top: 9px;
}
@media screen and (min-width: 768px) {
    .rbb_woo_products_slider_content {
        margin-left: -15px;
    }
    .related.rbb_woo_products .rbb_woo_products_slider_content {
        margin-left: 0;
        position: relative;
        left: -14px;
    }
    .rbb-default-header {
        margin-bottom: 3.5rem;
    }
    .single-product .terpene-wrapper .terpene-title {
        font-size: 2.5rem;
        line-height: 2.25rem;
    }
    .single-product .woocommerce-tabs .panel .bs-product-experience-section h2,
    .single-product .woocommerce-tabs .panel .bs-product-strain-section h2,
    .single-product .product-blog-posts h2,
    .single-product .bs-product-faq-accordion h2 {
        font-size: 2.5rem;
        line-height: 1.2;
    }
    .container .woocommerce-tabs .woocommerce-tabs-panel .bs-product-comparison-section h2:nth-child(2) {
        font-size: 44px;
        line-height: 1.2;
    }
    .bs-aggregate-average-value {
        line-height: 78px;
    }
    .bs-aggregate-average-value-wrapper .star-rating {
        margin-top: 7px;
    }
}

@media screen and (max-width: 405px) {
    .attribute-box {
        font-size: 14px;
        white-space: nowrap;
    }
}
@media screen and (max-width: 420px){
    .page-numbers li {
        padding:2.5px;
    }
}

.bs-section-subheading {
    padding-bottom: 3.5rem;
}
.single-product .product-summary .variations_form .single_variation{
    margin-bottom: 0.8rem;
}
.rbb-related-product .slick-list {
    padding-bottom: 15px;
}
@media screen and (max-width: 767px){
    .related.rbb_woo_products{
        overflow: visible;
    }
    .rbb_woo_products_slider_content,
    .rbb-related-product,
    .terpene-card-wrapper,
    .blog-post-grid {
        margin-left: -15px;
        margin-right: -15px;
    }
    .rbb-related-product .slick-list,
    .terpene-card-wrapper .slick-list,
    .blog-post-grid .slick-list {
        padding-left: 15px;
    }
    .terpene-card-wrapper {
        overflow-x: auto;
        overflow-y: hidden;
        scroll-snap-type: none;
        -webkit-overflow-scrolling: touch;
        scrollbar-width: none;
        padding: 0 15px;
    }
    .terpene-card-wrapper::-webkit-scrollbar {
        display: none;
    }
    .terpene-card-wrapper > .terpene-card {
        flex: 0 0 calc((100% - 1.2 * 1.5rem) / 2.2);
        width: auto;
        scroll-snap-align: none;
    }
    .bs-section-subheading {
        padding-bottom: 1rem;
    }
    .single-product .product-summary .product_title {
        padding-right: 0;
    }
    .single-product .product-summary .woosw-btn {
        display: none;
    }
    #rbb-gallery-lightbox .woosw-btn {
        display: flex;
    }
    /* Remove the space above the stars to match the desktop layout. */
    .bs-aggregate-average-value-wrapper .star-rating {
        margin-top: -4px;
    }
    /*cls fix start*/
    .rbb-product-gallery {
        display: flex;
    }
    .rbb-product-gallery__image {
        flex-shrink: 0;
        max-width: 100%;
    }
    /* The un-initialised strip is laid out as a single clipped flex row
       further up this file; a 4-column grid still wrapped to two rows. */
    .rbb-product-gallery:not(.slick-initialized) .rbb-product-gallery__image {
        margin-bottom: 22.5px;
    }
    .single-product .product-summary form{
        margin-top: 10px;
    }
    .bs-sd-teaser{
        margin-bottom: 10px;
        font-weight: 600;
    }

    .container .woocommerce-tabs .woocommerce-tabs-panel .bs-product-comparison-section h2:nth-child(1){
        font-size: 14px;
    }
    .woocommerce-tabs .panel h2.woocommerce-Reviews-title{
        margin-bottom: 0;
    }
    #tab-additional_information h2,
    #bs-product-faq-accordion h2,
    .bs-product-faq-accordion h2,
    .product-blog-posts h2 {
        text-align: center;
    }
    #rbb-mobile-navigation {
        z-index: 2000;
    }
    .rbb-product-thumbs {
        margin-left: -15px;
        margin-right:-15px;
    }
    .rbb-modal .rbb-modal-dialog.bs-review-modal-dialog,
    .rbb-modal .rbb-modal-dialog.bs-login-modal-dialog {
        width: 100%;
        max-width: 100%;
        margin: 0;
        margin-top: auto;
        max-height: 85vh;
        position: fixed;
        bottom: 0;
        left: 0;
        right: 0;
        border-bottom-right-radius: 0;
        border-bottom-left-radius: 0;
        animation: slideUpFromBottom 0.3s ease-out;
    }
    #bs-review-form-modal.backdrop,
    #bs-login-modal.backdrop {
        align-items: flex-end;
        padding-top: 60px;
    }
    #bs-review-form-modal.backdrop::before,
    #bs-login-modal.backdrop::before {
        background-color: rgba(0, 0, 0, 0.5);
    }
    .bs-review-layout {
        flex-direction: column;
        gap: 10px;
        position: relative;
    }
    .woocommerce-review__published-date {
        position: absolute;
        inset: -1px 0 auto auto;
    }
    .bs-review-left-side {
        align-items: center;
        max-width: calc(100% - 70px);
    }
    .rbb-modal .rbb-modal-dialog .rbb-modal-header{
        justify-content: space-between;
    }
    #reviews #comments .commentlist li .comment_container .comment-text{
        margin-top: 5px;
    }
    .bs-aggregate-reviews-bar {
        width: 120px;
    }
    body.logged-in .pac-container{
        margin-top: -46px !important;
    }
    .single-sticky.sticky {
        position: static;
    }
    #bs-review-form-modal .rbb-modal-header .rbb-close-modal {
        right: 25px;
    }
    .bs-product-comparison-section .compare-middle-section {
        padding-right: 5px;
        padding-left: 5px;
    }
    .single-product .terpene-wrapper .terpene-title,
    .woocommerce-tabs .panel h2.woocommerce-Reviews-title {
        font-size: 1.875rem;
        line-height: 2.25rem;
    }
}

@media screen and (max-width: 1024px) and (min-width: 768px){
    .attribute-box {
        font-size: 14px;
        white-space: nowrap;
    }
}
@media (max-width: 1023px) {
    .bs-product-experience-section {
        margin-top: 0;
        margin-bottom: 2rem;
    }
    
    .bs-product-experience-section .grid {
        gap: 2rem;
    }
}
@media screen and (min-width: 768px){
    .bs-short-description-checkmarks {
        margin-bottom: -16px;
    }
    .comment_container .woocommerce-review__author {
        text-align: center;
    }
    #rbb-page-title {
        padding: 0;
    }
    #rbb-page-title > .container {
        display: grid;
        grid-template-columns: repeat(12, minmax(0, 1fr));
        padding: 0 0 0.625rem;
    }
    #rbb-page-title .rbb-breadcrumb {
        grid-column: span 6 / span 6;
        grid-column-start: 7;
        padding: 0
    }
    .product .product-image {
        margin-top: -1.625rem;
    }
}
@media screen and (min-width: 1024px) {
    #rbb-page-title .rbb-breadcrumb {
        padding-left: 15px;
    }
    .secondary-checkmarks {
        padding: 30px;
        font-size: 1rem;
    }
}
@media screen and (min-width: 1280px) {
    ul.page-numbers {
        justify-content: center;
    }
    
    .bs-review-left-side .meta {
        align-items: flex-start;
    }
    
    .comment_container .woocommerce-review__author {
        font-weight: 600;
        margin: 0;
        font-size: 0.875rem;
        line-height: 1.25rem;
        text-align: left;
    }
    .comment_container .flex-1 {
        min-width: 0;
    }
    
    .comment_container .comment-text {
        margin-top: 0.5rem;
        padding-top: 0;
    }
      .page-numbers li a, .page-numbers li span {
        width: 30px;
        height: 30px;
        line-height: 29px;
    }
    
    .bs-review-layout {
        flex-direction: row;
    }
    
    .bs-review-left-side {
        flex-direction: row;
        align-items: center;
        min-width: 220px;
        max-width: 220px;
    }
    .bs-product-rating-review {
        flex-direction: row;
        /* Stretch the score column to the star-chart height so the number can
           top-align and the "% recommend" line can bottom-align with the chart. */
        align-items: stretch;
    }
    .bs-aggregate-average-wrapper {
        display: flex;
        flex-direction: column;
    }
    /* Push the score group (number / stars / "Based on…") down from the top.
       The "% recommend" margin below is reduced by the same amount so that line
       stays put while only the score group moves. */
    .bs-aggregate-average-value-wrapper {
        margin-top: 19px;
    }
    /* Tighten the number's line box. */
    .bs-aggregate-average-value {
        line-height: 1;
    }
    /* Pull the stars up tight to the large rating number. */
    .bs-aggregate-average-value-wrapper .star-rating {
        margin-top: 0;
    }
    #reviews .bs-aggregate-recommend-percent {
        margin-top: 7px;
        top: 0;
    }
}

@media (min-width: 1300px) {
    .rbb-product-thumbs {
        width: 80px;
    }
}
@media screen and (min-width: 1310px) {
    #rbb-page-title .rbb-breadcrumb {
        grid-column: span 5 / span 5;
        grid-column-start: 8;

    }
}

.single-product .terpene-wrapper .terpene-title {
    font-size: 2.5rem;
    line-height: 2.25rem;
}

.terpene-background {
    background: radial-gradient(680px 300px at 50% 2%, rgba(198, 150, 60, .24), transparent 66%),
        radial-gradient(520px 280px at 88% 24%, rgba(139, 21, 56, .06), transparent 62%),
        radial-gradient(460px 280px at 15% 70%, rgba(198, 150, 60, .10), transparent 66%),
        linear-gradient(180deg, #fbf7ef 0%, #f6eddf 52%, #fbf7ef 100%);
}
.bs-review-avatar {
    background-color: #ede8e199;
}
.bs-aggregate-average-review-count {
    line-height: 1.2;
    font-size: 0.69rem;
}
.bs-aggregate-recommend-percent {
    margin-top: 8px;
    top: 9px;
}

/* ---------------------------------------------------------------------------
   Product spec rating meters (Intensity / Yield / Height / Difficulty)
   Rendered above the Community Favorites section.
--------------------------------------------------------------------------- */
.bs-spec-ratings {
    margin-top: 50px;
    margin-bottom: 0;
}

/* Desktop */
@media screen and (min-width: 768px) {
    .bs-spec-ratings {
        margin-top: 40px;
    }
}

/* Community Favorites title spacing (overrides the mt-2/md:mt-12/xl:mt-20 utilities) */
.single-product .related .rbb-title {
    margin-top: 20px;
}

@media screen and (min-width: 768px) {
    .single-product .related .rbb-title {
        margin-top: 40px;
    }
}

.bs-spec-ratings__title {
    margin: 0 0 25px;
}

/* Columns adapt to the summary column's width (half-width at md, so a
   viewport breakpoint can't tell when two columns actually fit). */
.bs-spec-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(230px, 1fr));
    gap: 24px 28px;
}

.bs-spec {
    display: flex;
    flex-direction: column;
}

.bs-spec__head {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-bottom: 12px;
    color: #172c30;
}

.bs-spec__icon {
    width: 22px;
    height: 22px;
    flex: 0 0 auto;
    color: #01693a;
}

.bs-spec__name {
    font-weight: 600;
    font-size: 0.95rem;
    letter-spacing: 0.01em;
    text-transform: uppercase;
}

.bs-spec__value {
    margin-left: auto;
    font-size: 0.85rem;
    font-weight: 600;
    color: #01693a;
}

.bs-spec__track {
    display: flex;
    gap: 5px;
    margin-top: auto; /* bottom-align tracks when headers wrap to two lines */
}

.bs-spec__seg {
    flex: 1 1 0;
    height: 10px;
    border-radius: 999px;
    background-color: #dfe4e2;
    transition: background-color 0.2s ease;
}

.bs-spec__seg.is-filled {
    background-color: #01693a;
}

.bs-spec__bounds {
    display: flex;
    justify-content: space-between;
    margin-top: 6px;
    font-size: 0.72rem;
    color: #888;
    line-height: 1.2;
}

/* Mobile: tighter vertical rhythm between single-column metrics */
@media screen and (max-width: 767px) {
    .bs-spec-grid {
        gap: 20px;
    }
}

/* Parent theme fills the 120px strip behind the pulled-up footer newsletter card with teal (#e5f0ef) on product pages; use white to match the section above. */
body.product-template-default .footer-newsletter::before {
    background: #fff;
}
/* Gift card form: make the Message textarea span the container width like the
   text inputs (the plugin only sets width:100% on input[type=text]). */
.woocommerce_gc_giftcard_form textarea {
    width: 100%;
    box-sizing: border-box;
}

/* Message sits directly above the amount selector — drop its bottom gap. */
.woocommerce_gc_giftcard_form .wc_gc_field.wc_gc_giftcard_message {
    margin-bottom: 0;
}

/* Match the other field labels (From, To, Message, Delivery Date) to the
   "Gift Card Amount" swatch label: heading colour, bold. */
.woocommerce_gc_giftcard_form label {
    color: var(--rbb-general-heading-color);
    font-weight: 700;
}

/* Give the fields the same border as the amount value boxes: light grey,
   6px radius (boxes use `2px solid #e1e2e2` — see .attribute-box above). */
.woocommerce_gc_giftcard_form input.input-text,
.woocommerce_gc_giftcard_form textarea {
    border: 2px solid #e1e2e2;
    border-radius: 6px;
}

/* Match the gap below the "Gift Card Amount" swatch label to the other field
   labels. The field labels are WC form-row labels (line-height:2, no bottom
   margin); the swatch label carries an extra `mb-4` (16px). Scope to the
   gift-card amount so other products' swatches keep their spacing. */
.rbb-swatch__wrap:has(.attribute-box-wrapper[data-attribute-name="pa_gift-card-amount"]) .label.mb-4 {
    margin-bottom: 0;
    line-height: 2;
}

/* Golden-ratio gap below the select-type swatch wrap (Gift Card Amount). */
.rbb-swatch__wrap.rbb-swatch__wrap-select {
    margin-bottom: 1.618em;
}

/* The gift-card amount options are prefixed with the currency symbol in PHP
   (bs_gift_card_amount_option_name in functions.php), which covers the amount
   boxes, the selector label, and the cart line consistently. Do NOT also add a
   "$" here via ::before — that produced a doubled "$$25" on the boxes. */

/* Gift-card pages hide the seed-oriented content blocks that normally sit
   between the add-to-cart button and the following full-width sections (e.g.
   the "As Seen On" band), so add that spacing back here. */
.bs-gift-card-product .bs-logo-carousel-band {
    margin-top: 3rem;
}

/* Add-to-cart button disabled while gift-card From/To fields are empty
   (see bs-gift-cards/js/gift-card-product.js). The button can be an <a> tag,
   so the state is a class; pointer-events off blocks mouse clicks and the
   plugin JS guards keyboard activation. */
form.cart .single_add_to_cart_button:disabled,
form.cart .single_add_to_cart_button.bs-gc-disabled {
    opacity: 0.5;
    cursor: not-allowed;
    pointer-events: none;
}

/* Client-side recipient-email validation error on the gift-card "To" field
   (see BS_Gift_Cards_Purchase::enqueue_ajax_field_bridge). */
.woocommerce_gc_giftcard_form .wc_gc_field.bs-gc-invalid input.input-text {
    border-color: #e2401c;
}
.woocommerce_gc_giftcard_form .bs-gc-field-error {
    display: block;
    color: #e2401c;
    font-size: 0.875em;
    margin-top: 4px;
}
.rbb-swatches__single .variations .rbb-swatch__wrap {
    margin-bottom: 0;
}
.bs-yield-wrapper {
    margin-top: 1rem;
    margin-bottom: 0.5rem;
}