/* product add to cart after top mini cart start */



/* product add to cart after top mini cart end */


/***  product main section start ***/

body .type-product.product .yith-par-message-variation.yith-par-message-product,
body .type-product.product .yith-par-message.yith-par-message-product,
body .type-product.product .yith-par-message-variation {
    width: 100%;
    font-size: 18px;
    margin-top: 0px;
    margin-bottom: 20px;
}

.summary.entry-summary .yith-par-message, 
.summary.entry-summary .yith-par-message-variation {
    display: none !important;
}

.product .product_image_silde .onsale {
    right: 30px;
    top: 20px;
}

.single-product .product .product_image_silde .onsale {
    top: 30px;
}

.woocommerce-page #content div.product div.images, .woocommerce-page div.product div.images {
    width: 100%;
    margin-bottom: 0;
    position: relative;
}

ul.custom-flex-nav.flex-direction-nav {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    justify-content: space-between;
    position: absolute;
    width: calc(100% - 40px);
    top: 33%;
    transform: translateY(50%);
    left: 20px;
}

/* Gallery image, thumbnail and arrow styling lives in the "Product gallery"
   section near the end of this file. */

.woocommerce-page #content div.product div.summary, .woocommerce-page div.product div.summary {
    width: 100%;
}

.product_detail_silde_row .product_title {
    font-size: 36px;
    line-height: 40px;
}

.product-price-box .woocommerce-variation-price {
    display: none;
}

.product_image_silde {
    position: relative;
}

.product_detail_silde_row {
    display: flex;
    flex-direction: column;
}

.product_detail_silde_row .product_title {
    order: 1;
    margin-bottom: 0;
}

.product_detail_silde_row #ab-tiny-widget {
    order: 2;
    padding-bottom: 10px;
    font-size: 16px;
    line-height: 30px;
    color: #787878;
    position: relative;
    padding-left: 25px;
    padding-top: 10px;
    min-height: 50px;
}

.product_detail_silde_row #ab-tiny-widget:before {
    content: '';
    position: absolute;
    background-image: url(/wp-content/uploads/2025/05/Forma-1.webp);
    width: 20px;
    height: 15px;
    left: 0;
    top: 16px;
    background-position: center center;
    background-repeat: no-repeat;
    background-size: contain;
}

/* .product_detail_silde_row #product_just_stars {
    order: 2;
    padding-top: 15px;
} */

.single_reward_top {
    min-height: 88px;
}

.product_detail_silde_row .woocommerce-product-details__short-description {
    order: 4;
    padding: 20px;
    background: #f3f5f2;
    margin-bottom: 20px;
}

.product_detail_silde_row .woocommerce-product-details__short-description p {
    font-size: 16px;
    line-height: 26px;
    color: #787878;
    margin: 0;
}

.product_detail_silde_row .woocommerce-product-details__description {
    order: 5;
    overflow-x: auto;
    max-height: 304px;
}

.product_detail_silde_row .woocommerce-product-details__description.scrollbar-visible {
    padding-left: 10px;
}
.woocommerce .product-price-box .summary.entry-summary {
    margin-bottom: 20px;
    padding: 20px 30px;
    background: #f3f5f2;
    position: relative;
}

/* .woocommerce .product-price-box .summary.entry-summary:before {
    content: '';
    position: absolute;
    top: 0;
    bottom: 0;
    left: 100%;
    width: calc((100vw - 1400px) / 2);
    background-color: #f3f5f2;
    z-index: -1;
} */

.product-price-box .bottom-summary {
    padding: 0px 30px;
    display: block;
    clear: both;
}

.product-price-box .bottom-summary .download_lab_result .download_lab_result_link {
    border-radius: 17px;
    background-color: #4a6230;
    padding: 10px 20px;
    font-size: 11px;
    line-height: 22px;
    text-transform: uppercase;
    color: #ffffff;
}

.product-price-box .bottom-summary .download_lab_result .download_lab_result_link .fa-download {
    font-size: 15px;
    line-height: 20px;
    margin-left: 10px;
}

.product-price-box .bottom-summary .mit_and_tire_section {
    display: flex;
    gap: 15px;
    margin: 20px 0;
}

.product-price-box .bottom-summary .mit_and_tire_section .mit_and_tire-txt {
    border-radius: 50px;
    border: 2px solid #98c714;
    font-size: 16px;
    line-height: 20px;
    padding: 6px 20px;
    font-weight: 500;
    text-transform: capitalize;
}

.product-price-box .bottom-summary .mit-stength-scale-section .mit-stength-scale-line {
    position: relative;
    height: 18px;
    border-radius: 9px;
    background-image: linear-gradient(90deg, #64830d 0%, #98c714 30%, #ffe851 70%, #faa100 100%);
}

.product-price-box .bottom-summary .mit-stength-scale-section .mit-stength-scale-line .fa-caret-down {
    position: absolute;
    top: -14px;
    color: #000000;
    font-size: 28px;
}

.mit-stength-scale-line.mild .fa-caret-down {
    left: 15px;
}

.mit-stength-scale-line.standard .fa-caret-down {
    left: 33%;
}

.mit-stength-scale-line.elevated .fa-caret-down {
    left: 64%;
}

.mit-stength-scale-line.ultra .fa-caret-down {
    left: 91%;
}

.product-price-box .bottom-summary .mit-stength-scale-section .mit-stength-scale-text .mit-stength-scale-bullet:before {
    content: '';
    position: absolute;
    width: 11px;
    height: 11px;
    border-radius: 50px;
    left: 0;
    top: 8px;
}

.product-price-box .bottom-summary .mit-stength-scale-section .mit-stength-scale-text {
    display: flex;
    justify-content: space-between;
    margin-top: 5px;
}

.product-price-box .bottom-summary .mit-stength-scale-section .mit-stength-scale-text .mit-stength-scale-bullet {
    position: relative;
    padding-left: 15px;
    font-size: 15px;
    font-weight: 500;
}

.product-price-box .bottom-summary .mit-stength-scale-section .mit-stength-scale-text .mit-stength-scale-bullet.mild:before {
    background-color: #64830d;
}

.product-price-box .bottom-summary .mit-stength-scale-section .mit-stength-scale-text .mit-stength-scale-bullet.standard:before {
    background-color: #98c714;
}

.product-price-box .bottom-summary .mit-stength-scale-section .mit-stength-scale-text .mit-stength-scale-bullet.elevated:before {
    background-color: #fbe951;
}

.product-price-box .bottom-summary .mit-stength-scale-section .mit-stength-scale-text .mit-stength-scale-bullet.high:before {
    background-color: #faa408;
}

.product-price-box .bottom-summary .mit-stength-scale-discription-section {
    margin-top: 10px;
}

.product-price-box .bottom-summary .mit-stength-scale-discription-section .mit-stength-scale-discription-title {
    font-size: 16px;
    line-height: 19px;
    color: #4a6230;
    font-weight: 700;
    margin-bottom: 8px;
}

.product-price-box .bottom-summary .mit-stength-scale-discription-section .mit-stength-scale-discription-title a {
    font-size: 16px;
    line-height: 19px;
    color: #4a6230;
    font-weight: 400;
}

.product-price-box .bottom-summary .mit-stength-scale-discription-section p {
    font-size: 14px;
    line-height: 24px;
    color: #787878;
    margin: 0;
}

.product_detail_silde_row .woocommerce-product-details__description {
    font-size: 16px;
    line-height: 26px;
    color: #787878;
}

.product_detail_silde_row .woocommerce-product-details__description p {
    font-size: 16px;
    line-height: 26px;
    color: #787878;
    margin: 0;
}

.product_detail_silde_row .woocommerce-product-details__description h2 {
    font-size: 28px;
    line-height: 26px;
    margin-bottom: 15px;
}

.product_detail_silde_row .woocommerce-product-details__description h3 {
    font-size: 22px;
    margin: 15px 0;
}

body .product .summary.entry-summary .woocommerce-Price-amount.amount {
    font-size: 30px;
    color: #4a6230;
}

body .product .summary.entry-summary del {
    color: #4a6230;
}

body .product .summary.entry-summary ins .woocommerce-Price-amount.amount {
    color: #fab333;
}

body .product .summary.entry-summary ins {
    text-decoration: unset;
    margin-left: 10px;
}

table.variations tr {
    display: flex;
    flex-direction: column;
}

table.variations tr th.label {
    font-size: 17px;
    line-height: 29px;
    color: #333333;
}

table.variations tr td.value select {
    min-width: unset !important;
    background-color: #ffffff !important;
    padding-left: 15px;
    border-radius: 21px;
    border-color: #e9e9e9;
    font-size: 17px;
    line-height: 29px;
    color: #333333;
    padding-top: 6px;
    padding-bottom: 6px;
    outline-width: 0;
    cursor: pointer;
    border: unset;
}

input::-webkit-outer-spin-button,
input::-webkit-inner-spin-button {
  -webkit-appearance: none;
  margin: 0;
}

input[type=number] {
  -moz-appearance: textfield;
}

.woocommerce div.product form.cart {
    margin-bottom: 15px;
}

.woocommerce div.product form.cart .quantity {
    margin-right: 110px !important;
    border-radius: 21px;
    background-color: #ffffff;
    border: 1px solid #e9e9e9;
    margin-top: 23px !important;
    padding: 5px 0px;
    position: relative;
}

.woocommerce div.product form.cart .quantity button.minus {
    border: none;
    background: #ffffff;
    border-top-left-radius: 21px;
    border-bottom-left-radius: 21px;
    padding-left: 15px;
    color: #000000;
}

.woocommerce div.product form.cart .quantity .input-text.qty {
    border: none;
    outline-width: 0;
}

.woocommerce div.product form.cart .quantity button.plus {
    border: none;
    background: #ffffff;
    border-top-right-radius: 21px;
    border-bottom-right-radius: 21px;
    padding-right: 15px;
    color: #000000;
}

.woocommerce div.product form.cart .quantity:before {
    content: 'Select Quantity';
    position: absolute;
    left: 0;
    top: -32px;
    font-size: 17px;
    line-height: 29px;
    color: #333333;
    font-weight: 700;
}

/* Deep green rather than white on the amber fill. White measured 1.8:1 on
   #fab333 and 1.5:1 on #ffcc43 — both well under the 4.5:1 needed for body text,
   and at 14px uppercase that is genuinely hard to read. Deep green gives 7.1:1
   and 8.4:1. The heavier weight and slight tracking help small caps too.
   Note the shared :hover below flips the fill to dark green, so the label has to
   go back to white there or it disappears. */
.woocommerce div.product form.cart button.single_add_to_cart_button {
    min-width: 173px;
    margin-right: 15px;
    border-radius: 21px;
    background-color: #fab333;
    position: relative;
    font-size: 14px;
    line-height: 24px;
    text-transform: uppercase;
    color: #233a23;
    letter-spacing: .02em;
    font-weight: 700;
    display: flex;
    justify-content: center;
    align-items: center;
    margin-top: 15px;
    padding-right: 20px;
    padding-left: 20px;
}

/* On a subscription product the purchase-box plugin sets "color: #fff" via
   ".woocommerce div.product.has-subscription-plans form.cart button.single_add_to_cart_button",
   which carries one class more than the rule above and so wins — the label went
   back to white on exactly the pages that matter most.

   That declaration has been removed from the plugin, but the same rule is also
   inlined into the page by the cache layer, so it can outlive a plugin update
   until the cache is purged. Repeating the chain and prefixing "body" beats both
   copies outright, which is steadier here than an !important. */
body .woocommerce div.product.has-subscription-plans form.cart button.single_add_to_cart_button,
body .woocommerce div.product.has-subscription-plans form.cart button.buy-now-variable {
    color: #233a23;
}

/* The fill goes dark green on hover, so the label has to flip back to white. */
.woocommerce div.product form.cart button.single_add_to_cart_button:hover,
.woocommerce div.product form.cart button.buy-now-variable:hover,
body .woocommerce div.product.has-subscription-plans form.cart button.single_add_to_cart_button:hover,
body .woocommerce div.product.has-subscription-plans form.cart button.buy-now-variable:hover {
    background: #35492d;
    color: #ffffff;
}

.woocommerce div.product form.cart button.buy-now-variable.alt.disabled:hover {
    background: #ffcc43 !important;
}

.woocommerce div.product form.cart button.single_add_to_cart_button.alt.disabled:hover {
    background: #fab333 !important
}

.woocommerce div.product form.cart button.buy-now-variable.alt.disabled{
    opacity: 0.5;
    background-color: #ffcc43;
    font-size: 14px;
    line-height: 24px;
}

.woocommerce div.product form.cart button.buy-now-variable {
    min-width: 173px;
    border-radius: 21px;
    background-color: #ffcc43;
    position: relative;
    font-size: 14px;
    line-height: 24px;
    text-transform: uppercase;
    color: #233a23;
    letter-spacing: .02em;
    font-weight: 700;
    margin-top: 15px;
    padding-right: 20px;
    padding-left: 20px;
    opacity: 1;
}

.woocommerce div.product form.cart button.buy-now-variable.loading:after {
    right: 20px !important;
}

.woocommerce div.product form.cart button.single_add_to_cart_button:after {
    content: '';
    display: block;
    width: 14px;
    height: 14px;
    background-image: url(/wp-content/uploads/2025/05/grocery-store.webp);
    background-position: center;
    background-size: contain;
    background-repeat: no-repeat;
    margin-left: 8px;
}

.woocommerce div.product form.cart button.single_add_to_cart_button:focus::after {
    content: "\f013" !important;
    font-family: FontAwesome;
    opacity: .8;
    animation: fa-spin 2s linear infinite;
    font-size: 20px;
    background-image: unset;
    display: flex;
    justify-content: center;
    align-items: center;
}

.woocommerce div.product form.cart button.single_add_to_cart_button.disabled:focus::after {
    display: none;
}

.woocommerce div.product form.cart button.buy-now-variable.loading.disabled:after{
    display: none;
}
#SA_review_wrapper .SA__review_filter button.sa_btn {
    float: none !important;
}
@keyframes fa-spin {
    0% {
        -webkit-transform: rotate(0deg);
        transform: rotate(0deg);
    }
    100% {
        -webkit-transform: rotate(359deg);
        transform: rotate(359deg);
    }
}

.woocommerce .product-price-box .summary.entry-summary p.price {
    margin-bottom: 5px;
}

.woocommerce .product-price-box .summary.entry-summary #product_just_stars {
    margin-bottom: 10px;
}

.product-price-box-logo {
    width: 85%;
}

.row.category-compare-bar:has(div) {
    margin-top: 10px;
    gap: 10px;
}

.bar_box-titel {
    padding: 0 5px;
}

span.bar_title {
    color: #333333;
    font-weight: 700;
}

span.bar_percentage {
    color: #333333;
    font-weight: 700;
    float: right;
}

.bar_box-bar {
    width: 100%;
    height: 15px;
    background: #fff;
    border-radius: 15px;
    box-shadow: rgb(0 0 0 / 9%) 0 3px 4px 1px inset;
}

.bar_box_inener {
    height: 15px;
    border-radius: 15px;
}


/***  product main section end ***/


/*** Category information section start **/

.category-info-container {
    position: relative;
    overflow: hidden;
    display: flex;
    flex-wrap: nowrap;
    flex-direction: row;
    margin: 30px 0 70px;
}

.category-info-container:not(:has(div)) {
    min-height: 0;
    margin: 0;
    padding: 0;
}

.category-info-container .category-info-title {
    width: 50%;
    padding: 40px 20px;
}

.category-info-container .category-info-title .category-title {
    color: #ffffff;
    font-size: 36px;
    line-height: 40px;
    margin: 0;
    text-align: center;
}

.category-info-container .category-info-text p {
    font-size: 18px;
    line-height: 28px;
    color: #505050;
    margin: 0;
}

.category-info-container .category-info-text {
    position: absolute;
    top: 0;
    width: 75%;
    left: 0;
    background-color: #ffffff;
    border-top-right-radius: 50px;
    border-bottom-right-radius: 50px;
    opacity: 0.902;
    padding: 40px 70px;
    display: flex;
    flex-direction: column;
    gap: 20px;
    margin-top: 105px;
}

.category-info-container .category-info-image {
    width: 50%;
    background-repeat: no-repeat;
    background-position: center center;
    background-size: cover;
}

/*** Category information section end **/

/** why chooce kratom and dosage section start **/

.why-choose-kratom-and-dosage-section {
    display: flex;
    gap: 30px;
    margin-top: 70px;
    margin-bottom: 70px;
}

.why-choose-kratom-section {
    width: 100%;
}

.why-choose-kratom-section .why-choose-kratom-section-title {
    font-size: 36px;
    line-height: 40px;
    margin-bottom: 30px;
}

.why-choose-kratom-section .why-choose-kratom-section-boxes {
    display: flex;
    flex-wrap: wrap;
    gap: 20px;
    justify-content: space-between;
}

.why-choose-kratom-section .why-choose-kratom-section-boxes .why-choose-kratom-section-box {
    flex: 0 0 calc(50% - 10px);
    box-sizing: border-box;
    padding: 21px;
    border: 1px solid #e9e9e9;
    background-color: #fff;
    border-radius: 19px;
}

.why-choose-kratom-section .why-choose-kratom-section-boxes .why-choose-kratom-section-box .why-choose-kratom-section-box-title h3,
.why-choose-kratom-section .why-choose-kratom-section-boxes .why-choose-kratom-section-box .why-choose-kratom-section-box-title h4 {
    font-size: 27px;
    line-height: 35px;
    margin-bottom: 10px;
}

.why-choose-kratom-section .why-choose-kratom-section-boxes .why-choose-kratom-section-box .why-choose-kratom-section-box-text p {
    margin: 0;
    font-size: 18px;
    line-height: 28px;
    display: flex;
}

.kratom-dosage-section {
    width: 100%;
}

.kratom-dosage-section .tab-container .tabs {
    display: flex;
    gap: 20px;
}

.kratom-dosage-section .tab-container .tabs .tab {
    flex: 1;
    padding: 8px 10px;
    text-align: center;
    cursor: pointer;
    font-weight: 500;
    background-color: #ffffff;
    transition: background 0.3s, color 0.3s;
    border-radius: 50px;
    border: 1px solid #47612d;
    color: #47612d;
    text-transform: uppercase;
    align-content: center;
}

.kratom-dosage-section .tab-container .tabs .tab.active,
.kratom-dosage-section .tab-container .tabs .tab.active_tab {
    background-color: #47612d;
    color: #ffffff;
    position: relative;
}

.kratom-dosage-section .tab-container .tabs .tab.active:after,
.kratom-dosage-section .tab-container .tabs .tab.active_tab:after {
    content: '';
    width: 55px;
    height: 20px;
    display: block;
    position: absolute;
    top: unset;
    bottom: -19px;
    background: url(https://kratomspotrede.wpenginepowered.com/wp-content/uploads/2025/05/Shape-2.webp);
    left: 50%;
    background-repeat: no-repeat;
    transform: translateX(-50%);
}

.kratom-dosage-section .tab-container .tabs .tab:hover {
    background: #47612d;
    color: #ffffff;
}

.kratom-dosage-section .tab-container .tab-content {
    display: none;
    padding: 30px 30px;
    background-color: #f3f5f2;
    margin-top: 25px;
    border-radius: 21px;
}

.kratom-dosage-section .tab-container .tab-content.active,
.kratom-dosage-section .tab-container .tab-content.active_tab {
    display: block;
}

.kratom-dosage-section .tab-container .tab-content .dosage-information-tab-discription .dosage-information-tab-title {
    font-size: 32px;
    line-height: 48px;
    text-transform: uppercase;
    margin: 0;
}

.kratom-dosage-section .tab-container .tab-content .dosage-information-tab-discription .dosage-information-tab-title-discription {
    font-size: 16px;
    line-height: 26px;
    margin: 0;
    color: #000000;
}

.kratom-dosage-section .tab-container .tab-content .dosage-information-tab-discription .dosage-information-tab-discription-boxs {
    display: flex;
    gap: 10px;
    margin: 20px 0;
    flex-wrap: wrap;
}

.kratom-dosage-section .tab-container .tab-content .dosage-information-tab-discription .dosage-information-tab-discription-boxs .dosage-information-tab-discription-box {
    background: #ffffff;
    display: flex;
    width: calc(33.33% - 7px);
    min-width: 198px;
    align-items: center;
}

.kratom-dosage-section .tab-container .tab-content .dosage-information-tab-discription .dosage-information-tab-discription-boxs .dosage-information-tab-discription-box .dosage-information-tab-discription-box-image {
    background: #47612d;
    padding: 7px 13px;
    width: 46px;
    text-align: center;
}

.kratom-dosage-section .tab-container .tab-content .dosage-information-tab-discription .dosage-information-tab-discription-boxs .dosage-information-tab-discription-box .dosage-information-tab-discription-box-discripton {
    flex: 1;
    align-content: center;
    padding: 0 10px 0 20px;
}

.kratom-dosage-section .tab-container .tab-content .dosage-information-tab-discription .dosage-information-tab-discription-boxs .dosage-information-tab-discription-box .dosage-information-tab-discription-box-discripton .dosage-information-tab-discription-box-discripton-text {
    margin: 0;
    color: #000000;
    font-size: 15px;
    line-height: 25px;
}

.kratom-dosage-section .tab-container .tab-content .dosage-information-tab-discription .dosage-information-tab-discription-topics {
    margin: 20px 0;
}

.kratom-dosage-section .tab-container .tab-content .dosage-information-tab-discription .dosage-information-tab-discription-topics .dosage-information-tab-discription-topics-ul {
    list-style: none;
    padding: 0;
    margin: 0;
}

.kratom-dosage-section .tab-container .tab-content .dosage-information-tab-discription .dosage-information-tab-discription-topics .dosage-information-tab-discription-topics-ul .dosage-information-tab-discription-topics-li {
    position: relative;
    padding: 10px 0px 10px 40px;
    border-bottom: 1px dashed #989898;
}

.kratom-dosage-section .tab-container .tab-content .dosage-information-tab-discription .dosage-information-tab-discription-topics .dosage-information-tab-discription-topics-ul .dosage-information-tab-discription-topics-li .dosage-information-tab-discription-topics-li-img {
    position: absolute;
    left: 0;
}

.kratom-dosage-section .tab-container .tab-content .dosage-information-tab-discription .dosage-information-tab-discription-topics .dosage-information-tab-discription-topics-ul .dosage-information-tab-discription-topics-li .dosage-information-tab-discription-topics-li-text {
    margin: 0;
    font-size: 18px;
    line-height: 24px;
    color: #000000;
}

.kratom-dosage-section .tab-container .tab-content .dosage-information-tab-discription .dosage-information-tab-discription-topics .dosage-information-tab-discription-topics-ul .dosage-information-tab-discription-topics-li:last-child {
    border-bottom: 0;
}

.kratom-dosage-section .tab-container .tab-content .dosage-information-tab-discription .dosage-information-tab-discription-bottom-image img {
    border-radius: 21px;
}

/** why chooce kratom and dosage section end **/


/*** Product faq section start  ***/

.product-faq-section {
    display: flex;
    gap: 70px;
    margin: 70px auto;
}

.product-faq-section .product-faq-section-left {
    flex: 1;
    background-position: center center;
    background-repeat: no-repeat;
    background-size: cover;
    border-radius: 83px 23px 23px 23px;
    min-height: 700px;
}

.product-faq-section .product-faq-section-left .product-faq-section-left-image {
    width: 100%;
    height: 100%;
    max-width: 331px;
    max-height: 331px;
    background-repeat: no-repeat;
    background-position: center center;
    background-size: cover;
    border: 10px solid #ffffff;
    border-radius: 45px 166px 166px 166px;
    position: relative;
    top: -18px;
    left: -18px;
    background-color: #fff;
}

.product-faq-section .product-faq-section-right {
    flex: 1;
}

.product-faq-section .product-faq-section-right .product-faq-section-title-section .product-faq-section-title {
    font-size: 36px;
    line-height: 40px;
    margin-bottom: 25px;
}

.product-faq-section .product-faq-section-right .product-faq-item {
    padding: 5px 30px 10px;
    border: 1px solid #dedede;
    border-radius: 31px;
    margin-bottom: 20px;
    background: #f6f6f6;
}

.product-faq-section .product-faq-section-right .product-faq-item:last-child {
    margin-bottom: 0;
}

.product-faq-section .product-faq-section-right .product-faq-item._active {
    background: #ffffff;
}

.product-faq-section .product-faq-section-right .product-faq-item .product-faq-header {
    font-size: 22px;
    line-height: 32px;
    color: #000000;
    font-family: "Bree Serif", sans-serif;
    list-style: none;
    position: relative;
    padding-right: 20px !important;
}

.product-faq-section .product-faq-section-right .product-faq-item._active .product-faq-header {
    color: #47612d;
}

.product-faq-section .product-faq-section-right .product-faq-item .product-faq-header .product-faq-accordion-icon {
   font-family: 'Roboto';
    color: #000000;
    position: absolute;
    right: 0px;
    top: 50%;
    transform: translateY(-50%);
    width: 32px;
    text-align: center;
}

.product-faq-section .product-faq-section-right .product-faq-item._active .product-faq-accordion-icon {
    color: #47612d;
}

.product-faq-section .product-faq-section-right .product-faq-item .product-faq-content {
    margin: 20px 0;
}

.product-faq-section .product-faq-section-right .product-faq-item .product-faq-content p {
    font-size: 16px;
    line-height: 28px;
    color: #787878;
    margin: 0;
}

.product-faq-section .product-faq-section-right .product-faq-item .product-faq-accordion-icon-closed {
    display: block;
}

.product-faq-section .product-faq-section-right .product-faq-item._active .product-faq-accordion-icon-closed {
    display: none;
}

.product-faq-section .product-faq-section-right .product-faq-item .product-faq-accordion-icon-opened {
    display: none;
}

.product-faq-section .product-faq-section-right .product-faq-item._active .product-faq-accordion-icon-opened {
    display: block;
}


/*** Product faq section end  ***/


/***  releted products start **/

.related-products-section {
    background: #f6f6f6;
    border-radius: 20px;
    margin-top: 70px;
    margin-bottom: 70px;
}

.related-products-section .related.products {
    padding: 50px 20px;
}

.related-products-section .related.products > h2 {
    text-align: center;
    font-size: 36px;
    line-height: 48px;
    margin-bottom: 40px;
}

.related.products .owl-theme .owl-nav .owl-next, 
.related.products .owl-theme .owl-nav .owl-prev {
    background: #35492d;
    border-radius: 50px;
    width: 44px;
    height: 44px;
    line-height: 54px;
    margin: 0 5px;
}

.related.products .owl-theme .owl-nav .owl-next span, 
.related.products .owl-theme .owl-nav .owl-prev span {
    color: #ffffff;
    font-size: 36px;
    line-height: 0;
    font-weight: 200;
}

.related.products li.owl-prev span, 
.related.products li.owl-next span {
    display: none;
}

.related.products li.owl-next:before, .related.products li.owl-prev:before {
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    display: inline-block;
    font-family: Pe-icon-7-stroke;
    font-style: normal;
    font-variant: normal;
    font-weight: 400;
    line-height: 1;
    text-transform: none;
    font-size: 30px;
}

.related.products li.owl-prev:before {
    content: "\e686";
}

.related.products li.owl-next:before {
    content: "\e684";
}


/***  releted products end **/

/****  reviews section start  ***/

.reviews-and-question-section {
    border-radius: 20px;
    border: 1px solid #dddddd;
    padding-bottom: 60px;
    margin-bottom: 50px;
}

.reviews-and-question-section .answerbase-widget {
    max-width: 1366px;
    margin: 0 auto;
    padding: 0 40px;
}

/****  reviews section end  ***/

/* top mini cart start */

.row.box.addedtocart_box {
    align-items: center;
    border: 2px solid #4a6230;
    margin-left: 0 !important;
    margin-right: 0 !important;
    margin-top: 0;
    padding-bottom: 20px;
    padding-top: 20px;
    position: relative;
}

.addedtocart_box .pro-qty {
    font-size: 20px;
    color: #6a6a6a;
}

.addedtocart_box .pro-price {
    font-size: 20px;
    color: #6a6a6a;
    margin-top: 5px;
}

.addedtocart_box .added-basket {
    color: green;
    font-size: 20px;
}

.addedtocart_box .added-offer {
    font-size: 13px;
    padding: 1px 6px;
    margin-top: 15px;
    background: rgba(95, 175, 62, .3);
}

.row.box.addedtocart_box .addedcart_actions {
    display: flex;
    margin: 15px 0px 0;
    width: 100%;
    flex-direction: column;
    gap: 15px;
}

.addedcart_actions a.default-btn {
    padding: 16px 16px;
    max-width: 100%;
    width: 100%;
    font-size: 16px;
    text-transform: uppercase;
    border: 1px solid #333;
    line-height: 1;
}

.addedcart_actions a.default-btn.addedcart_checkout {
    color: #fff;
    background: #35492d;
}

.addedcart_actions a.default-btn.addedcart_checkout:hover {
    background-color: #fab333;
    border-color: #fab333;
}

.close_addedcart {
    cursor: pointer;
    position: absolute;
    right: 10px;
    top: 10px;
    width: auto;
    color: #6a6a6a;
}
/* top mini cart end */

/* product_type_2 start */

.product_type_2 .product_detail_silde_row .product_detail_extra_list {
    order: 5;
    list-style: none;
    padding: 0;
}

.product_type_2 .product_detail_silde_row .product_detail_extra_list li {
    border-bottom: 1px dashed #dee2e6;
    border-top: 1px dashed #dee2e6;
    color: #787878;
    font-size: 18px;
    padding: 15px 0 15px 40px;
    position: relative;
}

.product_type_2 .product_detail_silde_row .product_detail_extra_list li:first-child {
    padding: 0 0 15px 40px;
    border-top: 0 dashed #dee2e6;
}

.product_type_2 .product_detail_silde_row .product_detail_extra_list li img {
    left: 0;
    max-width: 25px;
    position: absolute;
}

.woocommerce .product_type_2 .product-price-box .summary.entry-summary p.price {
    margin-bottom: 15px;
}

.product_type_2 .product_detail_tabs {
    margin: 0 0 50px;
}

.product_type_2 .product_detail_tabs_bg {
    background-image: url(https://kratomspot.com/img/kratom/description_tabs_bg.webp);
    background-position: 50%;
    background-size: cover;
    height: 440px;
    position: absolute;
    top: 0;
    width: 100%;
}

.product_type_2 .product_detail_tabs_inner {
    position: relative;
    z-index: 9;
}

.product_type_2 .product_detail_tabs_inner .description-review-topbar {
    border-bottom: 0 solid #d7d7d7;
}

.product_type_2 .product_detail_tabs_inner .description-review-topbar a {
    background: #fff;
    border: unset !important;
    position: relative;
    padding: 15px 45px;
}

.product_type_2 .product_detail_tabs_inner .description-review-topbar a span {
    color: #000;
    font-family: "Bree Serif";
    font-size: 25px;
    margin: 0;
    text-transform: uppercase;
}

.product_type_2 .product_detail_tabs_inner .tab-pane {
    color: #6a6a6a;
    font-family: Roboto;
    font-size: 18px;
    line-height: 28px;
    background-color: #fff;
    box-shadow: 0 4px 12px #0000001a;
    padding: 40px;
}

.product_type_2 .related-products-section {
    margin-bottom: 0;
}

.product_detail_quantity_img {
    width: 100%;
    margin-bottom: 40px;
}

.woocommerce .blockUI.blockOverlay::before {
    display: none;
}

@media only screen and (max-width:579px) {
    .product_type_2 .product_detail_tabs_inner .description-review-topbar a {
        padding: 10px 30px;
    }
    .product_type_2 .product_detail_tabs_inner .tab-pane {
        padding: 30px 20px;
    }
    .product_type_2 .product_detail_tabs_inner .tab-pane h2 {
        font-size: 21px;
    }
}

/* product_type_2 end */

/* responcive css start */

@media only screen and (max-width:1110px) {
    table.variations tr td.value select {
        font-size: 15px;
    }
}

@media only screen and (max-width: 1440px) {
    /* .woocommerce .product-price-box .summary.entry-summary:before {
        content: '';
        position: absolute;
        top: 0;
        bottom: 0;
        left: 100%;
        width: calc((1440px - 1420px) / 1);
        background-color: #f3f5f2;
        z-index: -1;
    } */
    .related-products-section {
        border-radius: 0px;
    }
    .reviews-and-question-section {
        margin-right: 20px;
        margin-left: 20px;
        max-width: calc(100% - 40px) !important;
    }
}

@media only screen and (max-width: 1199px) {
    .product_detail_silde_row .product_title {
        font-size: 28px;
        line-height: 32px;
    }

    .product-price-box-logo {
        width: 100%;
    }

    .woocommerce .product-price-box .summary.entry-summary {
        padding: 20px 20px;
    }

    .product-price-box .bottom-summary {
        padding: 0px 20px;
    }

    .product-faq-section {
        gap: 40px;
    }
}

@media only screen and (max-width:1151px) {
    .category-info-container .category-info-text {
        padding: 20px 50px;
    }
}

@media only screen and (max-width:1024px) {
    .product-price-box {
        padding-left: 0;
    }
    .product_detail_silde_rows {
        padding-right: 0;
    }
    .category-info-container .category-info-title {
        padding: 40px 0 0 50px;
    }
    .kratom-dosage-section .tab-container .tabs .tab {
        border-radius: 20px;
    }
}

@media only screen and (max-width:991px) {
    .product_main_detail_section .product_detail_silde_rows {
        order: 2;
        margin: 0px 0 30px;
    }

    .product-price-box {
        padding-left: 12px;
    }

    .product_main_detail_section .product_image_silde {
        order: 1;
    }

    .product_main_detail_section .product-price-box {
        order: 3;
    }

    /* Long description, lifted out of the left card by product-page.js so it can
       sit after the buy card. Imagery, short description, buy, long description. */
    .product_main_detail_section .ks-longdesc-mobile {
        order: 4;
        width: 100%;
        padding: 0;
        /* No margin-top: the row already leaves 16px between blocks, and adding to
           it put this one 38px down while the other three sat at 16px. */
        margin-top: 0;
    }

    /* It carried no styling of its own — the card it sat in provided that — so it
       gets one here to match the other blocks in the fold. */
    .ks-fold .ks-longdesc-mobile .woocommerce-product-details__description {
        background: #ffffff;
        border-radius: 16px;
        padding: 18px;
        max-height: none;
        overflow: visible;
    }

    .woocommerce div.product form.cart .quantity {
        margin-right: 15px !important;
    }

    .woocommerce div.product form.cart button.single_add_to_cart_button,
    .woocommerce div.product form.cart button.buy-now-variable {
        margin-top: 22px;
    }

    /* .woocommerce .product-price-box .summary.entry-summary:after {
        content: '';
        position: absolute;
        top: 0;
        bottom: 0;
        right: 100%;
        width: calc((1440px - 1420px) / 1);
        background-color: #f3f5f2;
        z-index: -1;
    } */

    .why-choose-kratom-and-dosage-section {
        flex-direction: column;
        gap: 50px;
    }

    .dosage-information-tab-discription-bottom-image {
        text-align: center;
    }

    .kratom-dosage-section .tab-container .tab-content .dosage-information-tab-discription .dosage-information-tab-discription-bottom-image img {
        width: 100%;
    }

    section.category-info-section {
        margin-right: -20px;
        margin-left: -20px;
    }

    .category-info-container {
        flex-direction: column;
        padding: 20px 20px;
        margin: 40px 0;
    }

    .category-info-container .category-info-title {
        padding: 10px 0 10px 0px;
        width: 100%;
    }

    .category-info-container .category-info-text {
        padding: 10px 0 0;
        position: unset;
        width: 100%;
        border-radius: 0;
        background: transparent;
        transform: unset;
        opacity: 1;
        margin-top: 0px;
    }

    .category-info-container .category-info-image {
        min-height: 400px;
        order: -1;
        width: 100%;
    }

    .category-info-container .category-info-text p {
        color: #ffffff;
    }

    .product-price-box-logo {
        width: 50%;
    }

    .woocommerce .product-price-box .summary.entry-summary {
        padding: 20px 15px;
    }

    .product-price-box .bottom-summary {
        padding: 0px 15px;
    }

    .product-faq-section {
        gap: 20px;
    }

    .product-faq-section {
        gap: 40px;
        flex-direction: column;
    }

    .product-faq-section .product-faq-section-left {
        position: relative;
    }

    .product-faq-section .product-faq-section-left .product-faq-section-left-image {
        position: absolute;
    }

    .related-products-section {
        margin-top: 40px;
        margin-bottom: 40px;
    }

    .product-faq-section {
        margin: 40px auto;
    }

    .why-choose-kratom-and-dosage-section {
        margin-top: 40px;
        margin-bottom: 40px;
        gap: 40px;
    }

    .related-products-section .related.products {
        padding: 20px 20px;
    }

    .related-products-section .related.products > h2 {
        margin-bottom: 20px;
    }

    .product_detail_silde_row .woocommerce-product-details__description {
        padding-left: 10px;
    }

    .product_detail_silde_row:not(:has(#ab-tiny-widget)) .product_title.entry-title {
        padding-bottom: 50px;
    }
}

@media only screen and (max-width:767px) {
    .product-price-box-logo {
        width: 70%;
    }
}

@media only screen and (max-width: 579px) {
    .product_main_detail_section .product_image_silde {
        padding: 0 2px;
    }
    .woocommerce .product-price-box .summary.entry-summary {
        padding: 20px 12px;
    }
    .product-price-box .bottom-summary {
        padding: 0px 12px;
    }
    .why-choose-kratom-section .why-choose-kratom-section-boxes {
        flex-direction: column;
        flex-wrap: nowrap;
    }
    .why-choose-kratom-section-box-image {
        display: inline-block;
        float: left;
        margin-right: 20px;
        flex: 0.4;
    }
    .why-choose-kratom-section .why-choose-kratom-section-boxes .why-choose-kratom-section-box .why-choose-kratom-section-box-dis {
        flex: 0.9;
    }
    .product-price-box-logo {
        width: 100%;
    }
    .product-price-box-logo .side-logo {
        text-align: center;
    }
    .product_main_detail_section .product-price-box {
        padding-right: 0;
        padding-left: 0;
    }
    .reviews-and-question-section #SA_review_wrapper .SA__review_container {
        padding: 10px 0 0;
    }
    .reviews-and-question-section .answerbase-widget {
        padding: 0 0px;
    }
    .woocommerce div.product form.cart button.single_add_to_cart_button, 
    .woocommerce div.product form.cart button.buy-now-variable {
        margin-top: 15px;
        float: left;
    }
    .woocommerce div.product form.cart button.single_add_to_cart_button {
        width: 49%;
        margin-right: 10px;
        clear: both;
        min-width: unset;
    }
    .woocommerce div.product form.cart button.buy-now-variable {
        width: 47%;
        min-width: unset;
    }
    .category-info-container .category-info-image {
        min-height: 280px;
    }
    .product-faq-section .product-faq-section-left{
        min-height: 466px;
    }
    .product-faq-section .product-faq-section-left .product-faq-section-left-image {
        max-width: 221px;
        max-height: 221px;
    }
    .product-faq-section .product-faq-section-right .product-faq-section-title-section .product-faq-section-title {
        font-size: 32px;
        line-height: 34px;
        margin-bottom: 20px;
    }
    .related-products-section .related.products > h2 {
        font-size: 32px;
        line-height: 34px;
    }
    .related-products-section .related.products {
        padding: 30px 0px 20px;
    }
    .why-choose-kratom-section .why-choose-kratom-section-title {
        font-size: 32px;
        line-height: 34px;
        margin-bottom: 20px;
    }
    .category-info-container .category-info-title .category-title {
        font-size: 32px;
        line-height: 34px;
    }
    .category-info-container {
        padding: 40px 20px;
    }
    .product_detail_silde_row .product_title {
        font-size: 32px;
        line-height: 34px;
    }
    .why-choose-kratom-and-dosage-section {
        max-width: 100% !important;
        padding: 0 !important;
    }
    .why-choose-kratom-and-dosage-section .why-choose-kratom-section {
        padding: 0 20px;
    }
    .kratom-dosage-section .tab-container .tabs {
        gap: 10px;
        padding: 0 20px;
    }
    .kratom-dosage-section .tab-container .tab-content {
        padding: 20px 20px 40px;
        margin-top: 25px;
        border-radius: 0;
    }
    .why-choose-kratom-section .why-choose-kratom-section-boxes .why-choose-kratom-section-box .why-choose-kratom-section-box-title h3,
    .why-choose-kratom-section .why-choose-kratom-section-boxes .why-choose-kratom-section-box .why-choose-kratom-section-box-title h4 {
        font-size: 24px;
        line-height: 24px;
        margin-bottom: 6px;
    }
    .why-choose-kratom-section .why-choose-kratom-section-boxes .why-choose-kratom-section-box .why-choose-kratom-section-box-text p {
        font-size: 16px;
        line-height: 22px;
    }
    .product-faq-section .product-faq-section-right .product-faq-item .product-faq-header {
        font-size: 20px;
        line-height: 27px;
        padding-right: 20px;
    }
    .product-faq-section .product-faq-section-right .product-faq-item .product-faq-header .product-faq-accordion-icon {
        top: 50%;
        transform: translateY(-50%);
        right: -7px;
    }
    .product-faq-section .product-faq-section-right .product-faq-item {
        border-radius: 10px;
        padding: 5px 20px 10px;
    }
    .why-choose-kratom-section .why-choose-kratom-section-boxes .why-choose-kratom-section-box {
        padding: 20px;
        display: flex;
        align-items: center;
    }
    .woocommerce-page #content div.product div.images ol.flex-control-nav {
        gap: 0;
    }
    .row.box.addedtocart_box .pro-name h2 {
        font-size: 24px;
    }
    .single_reward_top {
        min-height: 115px;
    }
    .product_main_detail_section {
        min-height: 800px;
    }
    .product_main_detail_section .product_image_silde {
        min-height: 460px;
    }
}

@media only screen and (max-width: 379px) {
    .woocommerce div.product form.cart button.single_add_to_cart_button,
    .woocommerce div.product form.cart button.buy-now-variable {
        font-size: 12px;
    }
}

@media only screen and (max-width:390px) {
    .product-price-box .bottom-summary .mit_and_tire_section {
        gap: 10px;
    }
    .product-price-box .bottom-summary .mit_and_tire_section .mit_and_tire-txt {
        font-size: 14px;
        line-height: 18px;
        padding: 5px 14px;
    }
}

@media only screen and (max-width:1298px) and (min-width:992px) {
    .product-price-box .bottom-summary .mit_and_tire_section .mit_and_tire-txt {
        font-size: 14px;
        line-height: 18px;
        padding: 5px 12px;
    }
    .product-price-box .bottom-summary .mit_and_tire_section {
        gap: 10px;
    }
}
/* responcive css end */

#product_just_stars.reg.aside .SA__review_widget_item .SA__total_reviews {
    line-height: 8px;
}

/* WooCommerce Product Description Scrollbar Styles */
.woocommerce-product-details__description {
    direction: rtl;
    text-align: left;
}

.woocommerce-product-details__description * {
    direction: ltr;
}

.woocommerce-product-details__description::-webkit-scrollbar {
    width: 9px;
    height: 9px;
    direction: ltr;
}

.woocommerce-product-details__description::-webkit-scrollbar-track {
    background: #f1f1f1;
    border-radius: 5px;
}

.woocommerce-product-details__description::-webkit-scrollbar-thumb {
    background-color: #787878;
    border-radius: 5px;
    border: 1px solid #f1f1f1;
}

.woocommerce-product-details__description::-webkit-scrollbar-thumb:hover {
    background-color: #787878;
}

.woocommerce-product-details__description::-webkit-scrollbar-button {
    display: none;
    height: 0;
}

@supports (-moz-transform: translateY(0%)) {
  .woocommerce-product-details__description {
    scrollbar-color: unset;
    scrollbar-width: thin;
  }
}

@media screen and (max-width: 768px) {
    .woocommerce-product-details__description::-webkit-scrollbar {
        width: 5px;
        height: 5px;
    }
}
.woocommerce div.product form.cart button.single_add_to_cart_button:active::after {
  content: "\f013" !important;
  font-family: FontAwesome;
  opacity: .8;
  animation: fa-spin 2s linear infinite;
  font-size: 20px;
  background-image: unset;
  display: flex;
  justify-content: center;
  align-items: center;
}

/* ==========================================================================
   Product gallery
   ==========================================================================
   The main image sits in a soft card and the thumbnails read as real controls
   (rounded, hover lift, green ring on the active one). Nothing here changes the
   gallery's DOM or display type — FlexSlider measures .woocommerce-product-gallery
   to size its viewport, and altering that collapses the main image to a few pixels. */

.product_image_silde .woocommerce-product-gallery {
    position: relative;
}

/*
 * The card sits on each slide, not on .woocommerce-product-gallery__wrapper —
 * FlexSlider turns that wrapper into the sliding track, so its width spans every
 * slide at once and any border drawn there would scroll away with the track.
 * Only one slide is on screen at a time, so per-slide chrome reads as one card.
 *
 * The outline is an inset shadow rather than a border because FlexSlider sizes
 * slides in pixels; a real border would widen them and could wrap the track.
 */
.woocommerce div.product div.images .woocommerce-product-gallery__image {
    background: #ffffff;
    border-radius: 18px;
    box-shadow: inset 0 0 0 1px #eceade;
    overflow: hidden;
}

.woocommerce-page #content div.product div.images .woocommerce-product-gallery__image a img,
.woocommerce-page div.product div.images .woocommerce-product-gallery__image a img,
.woocommerce div.product div.images .woocommerce-product-gallery__image > img {
    filter: none;
    padding: 18px;
    aspect-ratio: 1 / 1;
    object-fit: contain;
    border-radius: 18px;
    transition: transform .45s cubic-bezier(.2, .7, .3, 1);
    will-change: transform;
}

/* Gentle push-in on hover — signals the image opens larger, without a jump. */
.woocommerce div.product div.images .woocommerce-product-gallery__image:hover a img,
.woocommerce div.product div.images .woocommerce-product-gallery__image:hover > img {
    transform: scale(1.06);
}

/* Thumbnails */
.woocommerce-page #content div.product div.images ol.flex-control-nav,
.woocommerce div.product div.images ol.flex-control-nav {
    display: flex;
    gap: 10px;
    margin-top: 12px !important;
    padding: 0;
    list-style: none;
}

.woocommerce-page #content div.product div.images ol.flex-control-nav li,
.woocommerce div.product div.images ol.flex-control-nav li {
    width: auto;
    flex: 1 1 0;
    margin: 0;
}

.woocommerce-page #content div.product div.images ol.flex-control-nav li img,
.woocommerce div.product div.images ol.flex-control-nav li img {
    filter: none;
    width: 100%;
    padding: 7px;
    background: #ffffff;
    border: 1px solid #eceade;
    border-radius: 12px;
    opacity: 1;
    aspect-ratio: 1 / 1;
    object-fit: contain;
    cursor: pointer;
    transition: border-color .18s ease, transform .18s ease, box-shadow .18s ease;
}

/* Prev / next arrows — circular controls that fade in over the image. */
ul.custom-flex-nav.flex-direction-nav {
    top: 50%;
    transform: translateY(-50%);
    width: calc(100% - 24px);
    left: 12px;
    opacity: 0;
    /* visibility, not just opacity — a faded-out arrow left clickable would swallow
       clicks meant for the image lightbox. */
    visibility: hidden;
    transition: opacity .2s ease, visibility .2s ease;
    pointer-events: none;
}

.product_image_silde:hover ul.custom-flex-nav.flex-direction-nav,
.product_image_silde:focus-within ul.custom-flex-nav.flex-direction-nav {
    opacity: 1;
    visibility: visible;
}

ul.custom-flex-nav.flex-direction-nav li a {
    pointer-events: auto;
    width: 38px;
    height: 38px;
    border-radius: 50%;
    background: rgba(255, 255, 255, .94);
    box-shadow: 0 2px 10px rgba(0, 0, 0, .14);
    display: flex;
    align-items: center;
    justify-content: center;
    color: #233a23;
    transition: background-color .15s ease, color .15s ease;
}

ul.custom-flex-nav.flex-direction-nav li a:hover {
    background: #233a23;
    color: #ffffff;
}

ul.custom-flex-nav.flex-direction-nav li a i {
    font-size: 20px;
    line-height: 1;
}

@media only screen and (max-width: 767px) {
    /* Touch devices have no hover, so the arrows stay visible. */
    ul.custom-flex-nav.flex-direction-nav {
        opacity: 1;
    }

    .woocommerce div.product div.images .woocommerce-product-gallery__image:hover a img,
    .woocommerce div.product div.images .woocommerce-product-gallery__image:hover > img {
        transform: none;
    }
}

/* Variation options (Size, etc.) rendered as selectable boxes by product-page.js.
   The native select is kept in the DOM as the source of truth, just hidden. */
table.variations td.value select.ks-select-replaced {
    display: none !important;
}

/* Equal-width tracks so every box is the same size regardless of label length —
   "4oz (112g)" and "1 Kilogram" produce identical boxes that line up flush.
   Room for the savings tag to overlap the top edge comes from the 9px top margin
   on .ks-swatch below, not from this grid. */
.ks-swatches {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(100px, 1fr));
    gap: 8px;
    margin-top: 0;
}

/* One constant 2px border on every state: the outline never changes thickness, so
   boxes never shift or look doubled when selected. */
.ks-swatch {
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: flex-start;
    text-align: center;
    min-height: 78px;
    padding: 16px 6px 0;
    margin-top: 9px;
    border: 2px solid #e6e4dc;
    border-radius: 12px;
    font-size: 14px;
    font-weight: 700;
    line-height: 1.2;
    transition: border-color .15s ease, background-color .15s ease, color .15s ease;
    background: #ffffff;
}

.ks-swatch:hover:not(.ks-swatch--disabled) {
    border-color: #4a6230;
}

.ks-swatch--selected {
    border-color: #233a23;
    background: #dcecc8;
    color: #233a23;
}

.ks-swatch--disabled {
    opacity: .4;
    cursor: not-allowed;
}

.ks-swatch--disabled .ks-swatch-label {
    text-decoration: line-through;
}

.ks-swatch:focus-visible {
    outline: 2px solid #233a23;
    outline-offset: 2px;
}

/* Leaf scale — one more filled leaf per step up in size. */
.ks-swatch-leaves {
    display: flex;
    gap: 2px;
    align-items: flex-end;
    margin-bottom: 7px;
}

.ks-swatch-leaves span {
    display: block;
    width: 13px;
    height: 13px;
}

.ks-swatch-leaves svg {
    width: 13px;
    height: 13px;
    display: block;
}

.ks-swatch-leaves .off path {
    fill: #dcdad0;
}

.ks-swatch-leaves .on path {
    fill: #a3c440;
}

.ks-swatch--selected .ks-swatch-leaves .on path {
    fill: #233a23;
}

.ks-swatch-label {
    font-size: 15px;
    font-weight: 800;
    color: #333333;
    padding-bottom: 3px;
}

.ks-swatch--selected .ks-swatch-label {
    color: #233a23;
}

/* Savings tag floats on the top edge of the box. */
.ks-swatch-save {
    position: absolute;
    top: -9px;
    left: 50%;
    transform: translateX(-50%);
    background: #fab333;
    color: #241c00;
    font-size: 9.5px;
    font-weight: 800;
    letter-spacing: .4px;
    text-transform: uppercase;
    line-height: 1.5;
    padding: 3px 9px;
    border-radius: 20px;
    white-space: nowrap;
    box-shadow: 0 1px 3px rgba(0, 0, 0, .15);
    z-index: 2;
}

/* Per-serving footer, flush to the bottom of the box. */
.ks-swatch-foot {
    width: calc(100% + 12px);
    margin: auto -6px 0;
    font-size: 11.5px;
    font-weight: 800;
    line-height: 1.3;
    padding: 6px 4px;
    border-radius: 0px 0px 9px 9px;
    background: #f1f5ea;
    color: #4a6230;
}

.ks-swatch--selected .ks-swatch-foot {
    background: #233a23;
    color: #ffffff;
}

/* Price line: keep the range and the "subscribe & save" badge on a tidy baseline. */
.product-price-box .summary.entry-summary p.price {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 6px;
    line-height: 1.35;
}

@media only screen and (max-width: 767px) {
    .ks-swatches {
        grid-template-columns: repeat(auto-fill, minmax(90px, 1fr));
    }

    .ks-swatch {
        min-height: 74px;
    }

    .ks-swatch-label {
        font-size: 14px;
    }

    .ks-swatch-save {
        font-size: 9px;
        padding: 3px 7px;
    }

    .ks-swatch-foot {
        font-size: 11px;
    }
}

/* Column balancing: on desktop, product-page.js moves the lab-results /
   Mit-strength block (.bottom-summary) from the tall right column to under the
   product images. The carrier div keeps the product-price-box class so every
   ".product-price-box .bottom-summary ..." rule above still applies. */
.product_image_silde .bottom-summary-holder {
    margin-top: 28px;
    padding: 0 10px;
}

.product_image_silde .bottom-summary-holder .bottom-summary {
    max-width: 420px;
    margin: 0 auto;
}

/* ==========================================================================
   First fold — premium dark buy card
   ==========================================================================
   The fold sits on a warm cream field with each column floating as its own
   white card, and the buy column inverts to deep green so it reads as the
   single most important object on the page.

   Scope: content-single-product.php puts .ks-fold on the container holding the
   rewards bar and the three columns, so nothing further down the page is
   affected.

   Selection flips on the dark card — the chosen size and the chosen purchase
   type turn white, the reverse of their light-card styling. Anything sitting on
   one of those white surfaces (labels, prices, benefit rows) therefore needs an
   explicit dark colour; inheriting the card's white text would make it vanish.

   Specificity: several rules being overridden here are more specific than a
   plain ".ks-fold ..." selector, e.g.
   "body .product .summary.entry-summary .woocommerce-Price-amount.amount" in
   this file and ".ksui-choice .ksui-choice-title" in the purchase-box plugin,
   and the plugin's CSS may load after this file. The overrides below repeat the
   "body .product .ks-fold .summary.entry-summary" chain to win on specificity
   rather than source order — keep the chain if you edit them. */

/* The cream runs edge to edge rather than sitting in a rounded panel — as a
   contained box it read as a floating beige rectangle on the white page.
   .container is width-capped, so the band is painted by a pseudo-element that
   stretches past it to the viewport edges.

   overflow-x: clip on the product wrapper absorbs that overhang. It has to be
   "clip" and not "hidden": hidden would make the wrapper a scroll container and
   break any position: sticky inside it. */
.single-product-main {
    overflow-x: clip;
}

.ks-fold {
    position: relative;
    padding-top: 26px;
    padding-bottom: 34px;
}

.ks-fold::before {
    content: "";
    position: absolute;
    top: 0;
    bottom: 0;
    left: calc(50% - 50vw);
    right: calc(50% - 50vw);
    background: #f1efe4;
    z-index: 0;
}

.ks-fold > * {
    position: relative;
    z-index: 1;
}

/* Wider gutters so the three cards read as separate panels. The row's negative
   margin is matched to the new column padding to keep the grid aligned. */
.ks-fold .product_main_detail_section {
    margin-left: -10px;
    margin-right: -10px;
}

.ks-fold .product_main_detail_section > [class*="col-"] {
    padding-left: 10px;
    padding-right: 10px;
}

/* Points bar.
   Two elements have to be covered: the rewards plugin renders
   .yith-par-message for simple products and .yith-par-message-variation for
   variable ones, and the variation class does NOT also carry .yith-par-message —
   styling only the first leaves the bar untouched on every variable product.

   !important is needed because the plugin writes background-color and color as
   inline attributes on both elements.

   min-height on the wrapper is reset: it reserved 88px for a bar that renders
   about 50px tall, leaving a dead gap above the cards. */
.ks-fold .single_reward_top {
    min-height: 0;
    margin-bottom: 0;
}

.ks-fold .single_reward_top .yith-par-message,
.ks-fold .single_reward_top .yith-par-message-variation {
    background-color: #ffffff !important;
    color: #233a23 !important;
    border: 1px solid #e5e2d4;
    border-left: 4px solid #a3c440;
    border-radius: 12px;
    box-shadow: 0 2px 10px rgba(40, 50, 35, .05);
}

/* Rating sits under the product title in the left card. The column is a flex
   column ordered by CSS, so this is what actually places it: title 1,
   "Ask us" widget 2, rating 3, short description 4, description 5. */
.ks-fold .product_detail_silde_row #product_just_stars {
    order: 3;
    padding: 0 0 12px;
}

/* The clamped description scrolls, and the theme flips it to direction: rtl to
   put that scrollbar on the left. Inside a white card the default dark thumb
   reads as a hard rule down the text, so it is toned to the card palette. */
.ks-fold .woocommerce-product-details__description::-webkit-scrollbar {
    width: 6px;
}

.ks-fold .woocommerce-product-details__description::-webkit-scrollbar-track {
    background: #f4f2e9;
    border-radius: 3px;
}

.ks-fold .woocommerce-product-details__description::-webkit-scrollbar-thumb {
    background-color: #cfcbb8;
    border: 0;
    border-radius: 3px;
}

/* ------------------------------------------------------------- the cards */

.ks-fold .product_detail_silde_row,
.ks-fold .ks-card {
    background: #ffffff;
    border-radius: 16px;
    padding: 20px;
    box-shadow: 0 2px 10px rgba(40, 50, 35, .05);
}

.ks-fold .ks-card--media {
    position: relative;
    display: inline-block;
    width: 100%;
}

/* The media card already pads itself, so the holder drops its own padding. */
.ks-fold .ks-card--media .bottom-summary-holder {
    padding: 0;
    margin-top: 22px;
}

.ks-fold .ks-card--media .bottom-summary {
    padding: 0;
}

/* --------------------------------------------------------- dark buy card

   The buy column inverts to deep green so it reads as the single most important
   object on the page.

   Selection flips on this card: the chosen size and the chosen purchase type turn
   white, the reverse of their light-card styling. Anything that lands on one of
   those white surfaces therefore needs an explicit dark colour, or it inherits
   the card's white text and vanishes. */

.woocommerce .ks-fold .product-price-box .summary.entry-summary {
    background: #233a23;
    color: #ffffff;
    border-radius: 16px;
    padding: 22px;
    margin-bottom: 0;
}

body .product .ks-fold .summary.entry-summary .woocommerce-Price-amount.amount {
    color: #ffffff;
}

body .product .ks-fold .summary.entry-summary del {
    color: rgba(255, 255, 255, .55);
}

body .product .ks-fold .summary.entry-summary ins .woocommerce-Price-amount.amount {
    color: #ffcc43;
}

body .product .ks-fold .summary.entry-summary table.variations tr th.label,
body .product .ks-fold .summary.entry-summary .ksui-heading {
    color: #ffffff;
}

body .product .ks-fold .summary.entry-summary a.reset_variations {
    color: rgba(255, 255, 255, .72);
}

body .product .ks-fold .summary.entry-summary .first-payment-date {
    color: rgba(255, 255, 255, .75);
}

/* ------------------------------------------------------- size swatches */

body .product .ks-fold .summary.entry-summary .ks-swatch {
    background: rgba(255, 255, 255, .06);
    border-color: rgba(255, 255, 255, .22);
    color: #ffffff;
}

body .product .ks-fold .summary.entry-summary .ks-swatch:hover:not(.ks-swatch--disabled) {
    border-color: #a3c440;
}

body .product .ks-fold .summary.entry-summary .ks-swatch-label {
    color: #ffffff;
}

body .product .ks-fold .summary.entry-summary .ks-swatch-foot {
    background: rgba(255, 255, 255, .1);
    color: #dbe8c4;
}

body .product .ks-fold .summary.entry-summary .ks-swatch-leaves .off path {
    fill: rgba(255, 255, 255, .32);
}

body .product .ks-fold .summary.entry-summary .ks-swatch-leaves .on path {
    fill: #a3c440;
}

body .product .ks-fold .summary.entry-summary .ks-swatch--selected {
    background: #ffffff;
    border-color: #a3c440;
}

body .product .ks-fold .summary.entry-summary .ks-swatch--selected .ks-swatch-label {
    color: #233a23;
}

body .product .ks-fold .summary.entry-summary .ks-swatch--selected .ks-swatch-foot {
    background: #a3c440;
    color: #233a23;
}

body .product .ks-fold .summary.entry-summary .ks-swatch--selected .ks-swatch-leaves .on path {
    fill: #233a23;
}

body .product .ks-fold .summary.entry-summary .ks-swatch--selected .ks-swatch-leaves .off path {
    fill: #cfd8c0;
}

/* --------------------------------------------- purchase type (plugin box) */

body .product .ks-fold .summary.entry-summary .ksui-choice--one-time,
body .product .ks-fold .summary.entry-summary .ksui-choice--subscribe {
    background: rgba(255, 255, 255, .06);
    border-color: rgba(255, 255, 255, .22);
}

body .product .ks-fold .summary.entry-summary .ksui-choice-title,
body .product .ks-fold .summary.entry-summary .ksui-choice-price--one-time,
body .product .ks-fold .summary.entry-summary .ksui-sub-amount {
    color: #ffffff;
}

body .product .ks-fold .summary.entry-summary .ksui-choice.ksui-selected {
    background: #ffffff;
    border-color: #a3c440;
}

body .product .ks-fold .summary.entry-summary .ksui-choice.ksui-selected .ksui-choice-title,
body .product .ks-fold .summary.entry-summary .ksui-choice.ksui-selected .ksui-choice-price--one-time,
body .product .ks-fold .summary.entry-summary .ksui-choice.ksui-selected .ksui-sub-amount {
    color: #233a23;
}

/* The struck one-time price sits immediately beside the bold subscribe amount,
   so it has to stay readable rather than fade out. The plugin's #9d9d9d is
   2.71:1 on this white card -- below the 4.5:1 AA minimum for 13.5px text.
   #5f6560 is 5.97:1 and is the same muted grey the save20 cards use. The dark
   unselected card keeps the plugin colour, which is 4.55:1 there. */
body .product .ks-fold .summary.entry-summary .ksui-choice.ksui-selected del.ksui-sub-regular {
    color: #9d9d9d;
}

body .product .ks-fold .summary.entry-summary .ksui-choice:not(.ksui-selected) input.wcsatt-options-prompt-action-input {
    background: rgba(255, 255, 255, .1);
    border-color: rgba(255, 255, 255, .5);
}

/* Benefits and the plan dropdown normally sit on the white selected card, where
   the plugin's own colours are correct. These cover the unselected state, in case
   the panel is ever shown while the card is still dark. */
body .product .ks-fold .summary.entry-summary .ksui-choice--subscribe:not(.ksui-selected) .ksui-benefit {
    color: #e6efd8;
}

body .product .ks-fold .summary.entry-summary .ksui-choice--subscribe:not(.ksui-selected) .ksui-check {
    background: #a3c440;
}

body .product .ks-fold .summary.entry-summary .ksui-choice--subscribe:not(.ksui-selected) .ksui-check svg {
    stroke: #233a23;
}

body .product .ks-fold .summary.entry-summary .ksui-choice:not(.ksui-selected) select.ksui-plan-select {
    background-color: rgba(255, 255, 255, .1);
    border-color: rgba(255, 255, 255, .3);
    color: #ffffff;
}

/* ------------------------------------------------------------- quantity */

body .product .ks-fold .summary.entry-summary .quantity {
    background: rgba(255, 255, 255, .08);
    border-color: rgba(255, 255, 255, .28);
}

body .product .ks-fold .summary.entry-summary .quantity input.qty {
    background: transparent;
    color: #ffffff;
}

/* "Select Quantity" is generated content on .quantity::before, not a text node,
   so it is easy to miss when checking the card for dark-on-dark text. */
body .product .ks-fold .summary.entry-summary .quantity::before {
    color: #ffffff;
}

/* !important only because the stepper buttons are set with !important upstream. */
body .product .ks-fold .summary.entry-summary .quantity button.minus,
body .product .ks-fold .summary.entry-summary .quantity button.plus {
    background: transparent !important;
    color: #ffffff !important;
    border: 0 !important;
}

/* --------------------------------------------------- badges + vein bars

   Both blocks share one white panel at the foot of the dark card. That keeps the
   green badge artwork legible and, more importantly, keeps the vein bars readable
   — the Green Vein bar is filled with #4a6230, which would all but disappear
   against the dark green card.

   The explicit margin also cancels the Bootstrap .row negative margins, which
   would otherwise push the panel wider than the card. */

body .product .ks-fold .summary.entry-summary .product-price-box-logo {
    width: 100%;
    margin: 20px 0 0;
    background: rgba(255, 255, 255, .95);
    border-radius: 14px;
    padding: 12px 6px 4px;
}

/* Products without vein data still render an empty .category-compare-bar, which
   would show as a bare white strip under the badges. Hide it, and only square off
   the badge panel's bottom corners when a populated bar follows it. */
body .product .ks-fold .summary.entry-summary .category-compare-bar:not(:has(div)) {
    display: none;
}

body .product .ks-fold .summary.entry-summary .product-price-box-logo:has(+ .category-compare-bar div) {
    border-radius: 14px 14px 0 0;
}

body .product .ks-fold .summary.entry-summary .category-compare-bar {
    background: rgba(255, 255, 255, .95);
    border-radius: 0 0 14px 14px;
    margin: 0;
    padding: 6px 16px 16px;
}

body .product .ks-fold .summary.entry-summary .category-compare-bar .bar_box-bar {
    background: #eceade;
    box-shadow: none;
}
/* ------------------------------------------------------------ stacked */

@media only screen and (max-width: 991px) {
    .ks-fold {
        padding-left: 12px;
        padding-right: 12px;
    }

    .ks-fold .product_main_detail_section {
        margin-left: 0;
        margin-right: 0;
    }

    .ks-fold .product_main_detail_section > [class*="col-"] {
        padding-left: 0;
        padding-right: 0;
        margin-bottom: 16px;
    }

    .ks-fold .product_detail_silde_row,
    .ks-fold .ks-card {
        padding: 16px;
    }

    .woocommerce .ks-fold .product-price-box .summary.entry-summary {
        padding: 18px 16px;
    }

    /* product-page.js only relocates .bottom-summary above 991px, so on stacked
       layouts it stays in the buy column and needs its own card on the cream. */
    .ks-fold .product-price-box > .bottom-summary {
        background: #ffffff;
        border-radius: 16px;
        padding: 16px;
        margin-top: 16px;
        box-shadow: 0 2px 10px rgba(40, 50, 35, .05);
    }
}

/* ==========================================================================
   Rating block in the fold
   ==========================================================================
   Shopper Approved prints two different figures from one widget: this product's
   score (.sa-info-line — 4.6 from 100 reviews) and the site-wide store score
   (.sa-status-line — 4.8 from 5,437). Both are worth showing. The trouble was
   presentation: stacked, similarly weighted, and with only the store figure
   actually labelled, so the pair read as one rating printed twice.

   So: one row — the product figure carries the visual weight on the left, the
   store figure sits quietly against the right edge. Setting them apart on the
   same line is what separates them; the store figure already says "Store
   Rating", so the pair no longer reads as one number printed twice.

   flex-wrap is on because this column runs roughly 250-400px across
   breakpoints. If the two ever stop fitting, the store figure drops to its own
   line rather than being squeezed or clipped. */

.ks-fold #product_just_stars #SA_product_trustbar_des_prev {
    display: flex;
    flex-direction: row;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 6px 12px;
}

.ks-fold #product_just_stars .sa-info-line.sa-mb-2 {
    margin-bottom: 0 !important;
}

/* Every selector here carries both ids on purpose. Shopper Approved injects a
   <style> block into the widget itself, and its rules are written as
   `#product_just_stars #SA_product_trustbar_des_prev .foo` — two ids, so a
   one-id selector of ours loses no matter how many classes it adds. It also puts
   !important on the pill's border-radius, which is why that one is matched here.

   The widget ships the pill as a 2px #2d2d2d box on an #F2F4F7 gradient with an
   8px radius — a hard black-and-blue-grey rectangle that matches nothing else in
   the fold. Softened to the hairline and pill radius the swatches use, and kept
   obviously clickable, because .sa_jump_to_reviews scrolls to the review list. */
.ks-fold #product_just_stars #SA_product_trustbar_des_prev .sa-trustbar-container {
    gap: 6px !important;
    padding: 7px 14px;
    border: 1px solid #e0ddcd;
    border-radius: 999px !important;
    background: #ffffff;
    cursor: pointer;
    transition: border-color .18s ease, box-shadow .18s ease;
}

.ks-fold #product_just_stars #SA_product_trustbar_des_prev .sa-trustbar-container:hover {
    border-color: #a3c440;
    box-shadow: 0 2px 8px rgba(40, 50, 35, .08);
}

.ks-fold #product_just_stars #SA_product_trustbar_des_prev .sa-info-line .sa-trustbar-avg {
    font-weight: 700;
    font-size: 15px;
    color: #233a23;
}

.ks-fold #product_just_stars #SA_product_trustbar_des_prev .sa-info-line .sa-trustbar-count {
    color: #5f6560;
}

/* The store score describes the shop, not this product, so it sits quieter. */
.ks-fold #product_just_stars .sa-status-line {
    align-items: center;
}

.ks-fold #product_just_stars #SA_product_trustbar_des_prev .sa-status-line > span {
    gap: 5px !important;
    font-size: 12.5px !important;
    color: #6f7570 !important;
}

/* Same grey as the line it belongs to. A lighter tint reads better as a
   parenthetical but lands at 4.27:1 on white, under the 4.5 minimum at 12.5px. */
.ks-fold #product_just_stars #SA_product_trustbar_des_prev .sa-status-line .sa-trustbar-count {
    color: #6f7570 !important;
}

/* Pinned to the right edge. justify-content on the wrapper already does this
   with exactly two children, but margin-left holds it there if the widget ever
   prints a third element into the block. */
.ks-fold #product_just_stars #SA_product_trustbar_des_prev .sa-status-line {
    margin-left: auto;
}

/* Vertical rule ahead of the store figure, so the two read as separate
   statements rather than one line of numbers. It is a flex item of
   .sa-status-line, which the widget sets to display:flex.

   margin-right is only 2px because .sa-status-line already has gap: 8px, and
   the two add up — the rule needs to sit tight against the store figure it
   belongs to, not drift into the space separating it from the pill. */
.ks-fold #product_just_stars #SA_product_trustbar_des_prev .sa-status-line::before {
    content: "";
    flex: 0 0 auto;
    width: 1px;
    height: 16px;
    margin-right: 2px;
    background: #ddd9c8;
}

/* Shopper Approved's review list, further down the page from the rating block
   above. The widget caps its middle column and review body at a fixed width,
   which leaves the list narrower than the section holding it. */
#SA_review_wrapper .SA__review_widget .SA__review_widget_item.middle,
#SA_review_wrapper .SA__review_widget .SA__review_widget_item .SA__review_content {
    max-width: 100%;
}

.sa-product-star-reviews-bar .form-check {
    padding-right: 0px;
}

/* --------------------------------------------- rating block on the buy card

   The rating mount now renders under the price, inside .summary.entry-summary,
   which the first-fold design paints #233a23. The greys above are tuned for the
   white column it used to sit in and measure about 2.6:1 on that green, so the
   store line needs light ink here.

   The pill is left alone deliberately: a white pill on the dark card reads well
   and keeps the product score the brightest thing in the block. */
.ks-fold .product-price-box .summary #product_just_stars {
    margin: 2px 0 14px;
}

.ks-fold .product-price-box .summary #product_just_stars #SA_product_trustbar_des_prev .sa-status-line > span,
.ks-fold .product-price-box .summary #product_just_stars #SA_product_trustbar_des_prev .sa-status-line .sa-trustbar-count {
    color: rgba(255, 255, 255, .82) !important;
}

.ks-fold .product-price-box .summary #product_just_stars #SA_product_trustbar_des_prev .sa-status-line::before {
    background: rgba(255, 255, 255, .28);
}

/* ------------------------------------------ rating block: no reviews yet

   With no reviews the widget renders neither .sa-info-line nor .sa-status-line
   but a single .first-to-review line, so none of the rules above reach it. Left
   alone it inherits #SA_product_trustbar_des_prev's dark slate (rgb(31,41,55)),
   which is 1.5:1 on the green buy card, and its "write a review" control renders
   as a bare #F2F4F7 rectangle — a stray light-grey box on the card.

   The inline background yields to !important. The size does not: the widget writes
   style="font-size: 18px !important" onto both spans, and an inline !important
   outranks any author stylesheet, so 18px cannot be changed from CSS at all — it
   would take stripping the attribute in JS. Left at 18px deliberately rather than
   carrying a declaration here that never applies. */
.ks-fold #product_just_stars #SA_product_trustbar_des_prev .first-to-review {
    justify-content: flex-start !important;
    align-items: center;
    gap: 7px !important;
    font-family: Roboto, sans-serif;
}

/* Same pill as the score badge, so the block keeps its shape whether the product
   has reviews or not. */
.ks-fold #product_just_stars #SA_product_trustbar_des_prev .first-to-review .sa_btn {
    background-color: #ffffff !important;
    color: #233a23 !important;
    border: 1px solid #e0ddcd;
    border-radius: 999px !important;
    padding: 6px 14px !important;
    font-weight: 700;
    line-height: 1.2;
    white-space: nowrap;
    transition: border-color .18s ease, box-shadow .18s ease;
}

.ks-fold #product_just_stars #SA_product_trustbar_des_prev .first-to-review .sa_btn:hover {
    border-color: #a3c440;
    box-shadow: 0 2px 8px rgba(40, 50, 35, .08);
}

/* Light ink for the lead-in, which sits directly on the card rather than in the
   pill. Matches the store-rating line above. */
.ks-fold .product-price-box .summary #product_just_stars #SA_product_trustbar_des_prev .first-to-review {
    color: rgba(255, 255, 255, .82);
}

/* ==========================================================================
   First fold — accessories layout (product_type_2)
   ==========================================================================
   content-single-product.php has two layouts behind check_category_for_layout_2().
   The accessories branch now carries .ks-fold too, so it inherits the cream
   field, the white column cards, the dark buy card and the points bar from the
   rules above. Only the differences belong here.

   The difference that matters: this layout has no product description in the
   fold, so nothing clamps the left column the way updateDescriptionMaxHeight()
   does on the main layout. Left alone the three cards came out 486 / 395 / 371px
   tall and the row read as ragged rather than as a set of panels.

   The columns already stretch — the row is flex — so the cards only need to fill
   the height they are handed.
   ========================================================================== */

/* Stretching the media card leaves the image sitting at the top with dead white
   beneath it, so the gallery is centred in whatever height the row settles on.
   Only on this layout — the main one puts the lab-results block in here, which
   should stay hard against the gallery rather than float in the middle. */
.product_type_2 .ks-fold .ks-card--media {
    display: flex;
    flex-direction: column;
    justify-content: center;
}

/* The feature list is the card's only content below the title, so the card's own
   padding is the spacing — .mb-40 in the markup left 40px of dead white under the
   final row. */
.product_type_2 .ks-fold .product_detail_extra_list {
    margin-bottom: 0;
}

/* Last row carries no divider: the card edge already closes the list. */
.product_type_2 .ks-fold .product_detail_extra_list li:last-child {
    border-bottom: 0;
    padding-bottom: 0;
}

/* The buy card is the shortest column here (no swatches, no plan box), so it
   needs the same stretch as the other two. */
.product_type_2 .ks-fold .product-price-box .summary.entry-summary {
    height: 100%;
}

/* --------------------------------------------------- currency symbol on the card

   The symbol carries its own #4a6230 rather than inheriting from .amount, so on
   the dark card a plain price rendered a nearly invisible "$" beside white
   digits — 1.81:1. It only shows up on products with no sale price: when there
   is one, the symbol sits inside del/ins, which are coloured above.

   inherit rather than a fixed colour so it follows whichever price it belongs to
   — white for the plain and struck prices, amber for the sale price. */
body .product .ks-fold .summary.entry-summary .woocommerce-Price-currencySymbol {
    color: inherit !important;
}

/* Muted copy in the left card sat at #787878, which is 4.42:1 on white — just
   under the 4.5 minimum for body text. Applies to the feature list on the
   accessories layout and to the "Have a product question?" line on both. */
.ks-fold .product_detail_silde_row .product_detail_extra_list li,
.ks-fold .product_detail_silde_row > span {
    color: #6b6b6b;
}

/* ------------------------------------------- empty badge / vein-bar panels

   custom_content_after_add_to_cart_form() emits both rows unconditionally and
   fills them only when the ACF fields are set — customer_favorite_image* for the
   badges, bar_graph for the vein bars. Accessories have neither, so the white
   panels the rules above give them rendered as blank bars under the buttons.

   :empty rather than a blanket rule, so an accessory that does get badges still
   gets its panel. Both divs are closed with no whitespace inside, so :empty
   matches exactly when the conditionals contributed nothing.

   Padding and margin go with the background — transparent alone would swap the
   white bar for an equally empty gap. */
.product_type_2 .ks-fold .summary.entry-summary .product-price-box-logo:empty,
.product_type_2 .ks-fold .summary.entry-summary .category-compare-bar:empty {
    background: transparent;
    padding: 0;
    margin: 0;
}

/* ------------------------------------------------- equal-height column cards

   The three cards finish level rather than each ending wherever its own content
   runs out — the media card was 824px against 1116 and 1103 for the other two,
   leaving a block of empty white beside the gallery.

   The columns already stretch, since the row is flex, so the cards only need to
   fill the height they are handed.

   Not applied to .summary.entry-summary: on a simple product .bottom-summary is
   its sibling inside the same column, and stretching the summary to the full
   column height would push that block out of view.

   updateDescriptionMaxHeight() in product-page.js measures these cards, and a
   stretched card reports the row height — the number it is computing. It drops
   the stretch for the duration of the measurement; keep that in step if this
   rule moves. */
.ks-fold .ks-card--media,
.ks-fold .product_detail_silde_row {
    height: 100%;
}

/* The buy column joins the equal-height set.
 *
 * flex rather than height:100% on the summary. On a simple product
 * .bottom-summary is still the summary's sibling in this column, and a summary
 * forced to the full column height would push that block past the bottom edge.
 * flex-grow gives it whatever is left instead, so it fills the column when it is
 * alone (variable products, where the JS has moved .bottom-summary to the
 * gallery) and stops short of the block when it is not.
 *
 * Direct child of the row on purpose: the carrier div that receives
 * .bottom-summary in the gallery column also carries .product-price-box, and a
 * descendant selector would restyle that one too. Only the real buy column is a
 * direct child of .product_main_detail_section.
 */
.ks-fold .product_main_detail_section > .product-price-box {
    display: flex;
    flex-direction: column;
}

.ks-fold .product_main_detail_section > .product-price-box .summary.entry-summary {
    flex: 1 1 auto;
}
