/* Shobhini CRO enhancements: trust badges, sticky mobile cart, special price badge.
   Button colors (including Add to Cart) now live in site-buttons.css, enqueued
   site-wide -- kept out of this file to avoid two rules fighting the same selector. */

/* ---- Trust badges row -- horizontal, scrollable (not wrapped), relocated by JS
   to sit right under the price (see cro-enhancements.js) since this theme's price
   widget doesn't fire a hook this file could anchor to directly. ---- */
.shobhini-trust-badges {
    display: flex;
    flex-wrap: nowrap;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    gap: 8px;
    margin: 10px 0 18px;
    padding-bottom: 4px;
}
.shobhini-badge {
    flex: 0 0 auto;
}
.shobhini-badge {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    background: #fdf6ea;
    border: 1px solid #e6d9c3;
    color: #4a3b2f;
    font-size: 12.5px;
    font-weight: 500;
    padding: 6px 12px;
    border-radius: 20px;
    white-space: nowrap;
}
.shobhini-badge-icon {
    font-style: normal;
    line-height: 1;
}
.shobhini-badge--dispatch {
    background: #f3e6d3;
    border-color: #c9a227;
}

/* ---- WhatsApp-first CTA (test: this product only, body.shobhini-wa-test) ---- */
.shobhini-wa-cta {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 2px;
    background: #25d366;
    color: #ffffff !important;
    text-decoration: none !important;
    border-radius: 8px;
    padding: 12px 16px;
    margin: 4px 0 10px;
    width: 100%;
    box-sizing: border-box;
}
.shobhini-wa-cta__main {
    font-size: 16px;
    font-weight: 700;
}
.shobhini-wa-cta__sub {
    font-size: 11.5px;
    opacity: 0.9;
}
.shobhini-sizing-help {
    font-size: 12.5px;
    color: #4a3b2f;
    margin: 0 0 10px;
}
.shobhini-sizing-help a {
    color: #6d1b3c;
    font-weight: 600;
}

/* ---- Size helper link (relocated by JS to sit under the size swatches) ---- */
.shobhini-size-helper {
    font-size: 12.5px;
    margin: 6px 0 14px;
}
.shobhini-size-helper a {
    color: #6d1b3c;
    font-weight: 600;
    text-decoration: none;
}
.shobhini-custom-size-note {
    font-size: 12.5px;
    color: #4a3b2f;
    background: #f3e6d3;
    border-radius: 6px;
    padding: 8px 12px;
    margin: 0 0 14px;
}

/* ---- Reassurance block (delivery + sizing), WA-test page only ---- */
.shobhini-reassurance {
    background: #fdf6ea;
    border: 1px solid #e6d9c3;
    border-radius: 8px;
    padding: 12px 14px;
    margin: 14px 0;
}
.shobhini-reassurance p {
    font-size: 13px;
    color: #4a3b2f;
    margin: 0;
}
.shobhini-reassurance p + p {
    margin-top: 6px;
}

/* ---- Viral badge, under the title ---- */
.shobhini-viral-badge {
    font-size: 13px;
    color: #6d1b3c;
    font-weight: 600;
    margin: 2px 0 8px;
}

/* ---- Description accordion ---- */
.shobhini-accordion {
    margin: 18px 0;
    border-top: 1px solid #e6d9c3;
}
.shobhini-accordion details {
    border-bottom: 1px solid #e6d9c3;
}
.shobhini-accordion summary {
    padding: 12px 4px;
    font-weight: 600;
    font-size: 14px;
    color: #2c2320;
    cursor: pointer;
    list-style: none;
    display: flex;
    justify-content: space-between;
    align-items: center;
}
.shobhini-accordion summary::-webkit-details-marker {
    display: none;
}
.shobhini-accordion summary::after {
    content: "+";
    font-size: 18px;
    color: #6d1b3c;
}
.shobhini-accordion details[open] summary::after {
    content: "\2212";
}
.shobhini-accordion__body {
    padding: 0 4px 14px;
    font-size: 13px;
    color: #4a3b2f;
    line-height: 1.5;
}
.shobhini-accordion__body ul {
    margin: 0;
    padding-left: 18px;
}

/* ---- Top trust strip, injected right after the header, WA-test page only ---- */
.shobhini-top-strip {
    display: flex;
    justify-content: center;
    flex-wrap: wrap;
    gap: 4px 16px;
    background: #fdf6ea;
    border-bottom: 1px solid #e6d9c3;
    padding: 6px 12px;
    font-size: 11.5px;
    color: #4a3b2f;
    text-align: center;
}

/* ---- Hide the generic brand-mission block on the WA-test page (per spec) ---- */
body.shobhini-wa-test .elementor-element-a00bcc3,
body.shobhini-wa-test .elementor-element-b267bda {
    display: none !important;
}

/* On the WhatsApp-test product, Add to Cart becomes the secondary action */
body.shobhini-wa-test .single_add_to_cart_button.button,
body.shobhini-wa-test .single_add_to_cart_button.button.alt {
    background-color: transparent !important;
    border: 1px solid #D4AF37 !important;
    color: #D4AF37 !important;
}
body.shobhini-wa-test .single_add_to_cart_button.button:hover,
body.shobhini-wa-test .single_add_to_cart_button.button.alt:hover {
    background-color: #faf3e0 !important;
    color: #D4AF37 !important;
}

/* ---- Sticky mobile add-to-cart bar: two rows -- qty+button, then price.
   No product name, no "Save ₹X" badge here -- kept intentionally compact. ---- */
.shobhini-sticky-cart {
    display: none;
    flex-direction: column;
    position: fixed;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 9999;
    background: #fdf6ea;
    border-top: 1px solid #e6d9c3;
    box-shadow: 0 -4px 14px rgba(44, 35, 32, 0.12);
    padding: 10px 14px;
    gap: 8px;
    transform: translateY(100%);
    transition: transform 0.32s cubic-bezier(0.22, 1, 0.36, 1);
    will-change: transform;
}
.shobhini-sticky-cart.is-visible {
    transform: translateY(0);
}
.shobhini-sticky-cart__row1 {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
}
.shobhini-sticky-cart__row2 {
    text-align: center;
}
.shobhini-sticky-cart__price {
    font-size: 15px;
    font-weight: 700;
    color: #2c2320;
}
.shobhini-sticky-cart__qty {
    display: flex;
    align-items: center;
    border: 1px solid #e6d9c3;
    border-radius: 6px;
    flex-shrink: 0;
    overflow: hidden;
}
.shobhini-sticky-cart__qty button {
    background: #fdf6ea;
    border: none;
    width: 28px;
    height: 34px;
    font-size: 15px;
    color: #6d1b3c;
    line-height: 1;
}
.shobhini-sticky-cart__qty span {
    width: 24px;
    text-align: center;
    font-size: 13px;
    font-weight: 600;
    color: #2c2320;
}
.shobhini-sticky-cart__button {
    background: #D4AF37 !important;
    color: #fdf6ea !important;
    border: none;
    border-radius: 6px;
    padding: 12px 20px;
    font-weight: 600;
    font-size: 14px;
    white-space: nowrap;
    flex-shrink: 0;
    text-decoration: none !important;
    text-align: center;
    transition: background-color 0.2s ease;
}
.shobhini-sticky-cart__button.is-added {
    background: #2e7d32 !important;
}
.shobhini-sticky-cart__button--wa {
    background: #25d366;
    color: #ffffff !important;
}

/* ---- Product gallery: arrows instead of dots (all screen sizes) ---- */
.product-gallery-slider .owl-dots {
    display: none !important;
}
.product-gallery-slider-wrap {
    position: relative;
}
.shobhini-gallery-arrow {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    z-index: 20;
    width: 34px;
    height: 34px;
    border-radius: 50%;
    border: none;
    background: rgba(253, 246, 234, 0.9);
    color: #6d1b3c;
    font-size: 13px;
    line-height: 1;
    box-shadow: 0 2px 8px rgba(44, 35, 32, 0.18);
    cursor: pointer;
}
.shobhini-gallery-arrow--prev {
    left: 10px;
}
.shobhini-gallery-arrow--next {
    right: 10px;
}

.shobhini-highlight {
    animation: shobhini-flash 1.2s ease;
}
@keyframes shobhini-flash {
    0%, 100% { box-shadow: none; }
    30% { box-shadow: 0 0 0 3px #c9a227; }
}

@media (max-width: 767px) {
    .shobhini-sticky-cart {
        display: flex;
    }
    body.shobhini-sticky-cart-active {
        padding-bottom: 100px;
    }
    /* The floating WhatsApp chat widget (wp-whatsapp-chat, z-index 9999999) and the
       ModernCart floating button both sit bottom-corner and collide with this bar
       now that it's taller (two rows) -- lift both clear above it. */
    body.shobhini-sticky-cart-active .qlwapp__container--bottom-right,
    body.shobhini-sticky-cart-active #moderncart-floating-cart {
        bottom: 110px !important;
    }
}

/* ---- Size selector: hide the "Size" text label, only on the pa_size row --
   other attributes (if any) keep their label. Purely visual: the underlying
   <select> and swatch <ul> are untouched, so the variation form still works
   exactly as before. ---- */
.variations th.label label[for="pa_size"] {
    display: none;
}
.variations td.value:has(#pa_size) {
    padding-top: 0;
}

/* Swatches: the plugin's own default is a clean flex-wrap row of fixed 45x45px
   boxes -- that's the "standard design". The previous grid/auto-flow override
   here broke it (squeezed every box into one unreadable row with no visible
   borders). Reverting to flex-wrap and just trimming the box size a little on
   phones so 4-5 fit per row and it wraps to a tidy 2 lines instead of a ragged
   one, which is all that's actually needed for size lists this long
   (XS/S/M/L/XL/XXL/XXXL/Custom). */
.thwvsf-wrapper-ul {
    display: flex !important;
    flex-wrap: wrap;
    justify-content: flex-start;
    gap: 0;
}

/* Text-label swatches (all sizes here use these, not color/image swatches):
   let the box width grow with its label instead of forcing every one into
   the same fixed square -- that fixed square is exactly what was clipping
   "Custom" (and would do the same to "XXXL"). Height stays uniform so the
   row still reads as one consistent set of pills. */
.thwvsf-wrapper-ul .thwvsf-wrapper-item-li.thwvsf-label-li {
    width: auto !important;
    min-width: 38px;
    padding: 0 10px !important;
    white-space: nowrap;
}
@media (max-width: 480px) {
    .thwvsf-wrapper-ul .thwvsf-wrapper-item-li {
        height: 36px !important;
        margin: 3px 6px 3px 0 !important;
        font-size: 12px;
    }
    .thwvsf-wrapper-ul .thwvsf-wrapper-item-li:not(.thwvsf-label-li) {
        width: 36px !important;
    }
    .thwvsf-wrapper-ul .thwvsf-wrapper-item-li.thwvsf-label-li {
        min-width: 36px;
        padding: 0 9px !important;
    }
}

/* ==========================================================================
   PDP polish -- 2026-09-02
   A consistent vertical rhythm for the mobile product page, plus the save
   badge and unit label sharing one line under the price.
   ========================================================================== */

/* ---- "Save up to ..." badge.
   Was 1px/8px, which read as a cramped sliver against 8px of side padding. ---- */
.shobhini-save-percent {
    font-size: 11px !important;
    line-height: 1.15 !important;
    padding: 7px 12px !important;
    border-radius: 6px;
    letter-spacing: 0.02em;
}

/* ---- Price line: amounts, then the badge and the unit label together.
   The badge used to be display:block, which pushed "/pcs" onto a third line
   of its own. A wrapping flex row keeps the price on one line and lets the
   badge and the unit sit side by side beneath it. ---- */
.single-product .thegem-te-product-price .price > .title-h2 {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px;
}
/* The price-range announcement is for screen readers only; as a flex item it
   would otherwise claim a slot and shove the badge onto its own line again. */
.single-product .thegem-te-product-price .price > .title-h2 > .screen-reader-text {
    position: absolute !important;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: 0;
    overflow: hidden;
    clip: rect(0 0 0 0);
    white-space: nowrap;
    border: 0;
}
.single-product .shobhini-save-percent {
    display: inline-flex !important;
    align-items: center;
    margin: 0 !important;
}
.single-product .uom {
    font-size: 13px !important;
    line-height: 1.2 !important;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: #6b6259;
    margin: 0 !important;
    align-self: center;
}

@media (max-width: 767px) {

    /* ---- Floating buttons vs the sticky add-to-cart bar.
       The earlier rule aimed at .qlwapp__container--bottom-right, but this
       site renders the widget bottom-LEFT and the container class is applied
       by the widget's own script, so nothing matched. Lift every variant. ---- */
    body.shobhini-sticky-cart-active .qlwapp__container,
    body.shobhini-sticky-cart-active .qlwapp__container--bottom-right,
    body.shobhini-sticky-cart-active .qlwapp__container--bottom-left,
    body.shobhini-sticky-cart-active .qlwapp,
    body.shobhini-sticky-cart-active #moderncart-floating-cart,
    body.shobhini-sticky-cart-active .moderncart-floating-cart {
        bottom: 104px !important;
        transition: bottom 0.32s cubic-bezier(0.22, 1, 0.36, 1);
    }

    /* ---- The summary column carried 70px of padding top AND bottom, which is
       what left the large empty band under the gallery. Equal, and sized for a
       phone rather than a desktop hero. ---- */
    .elementor-element-70698d9f > .elementor-element-populated {
        padding: 28px 21px 28px 21px !important;
    }

    /* ---- Gallery sits flush against the summary block above. ---- */
    .elementor-element-3c8a1937,
    .elementor-element-3c8a1937 > .elementor-widget-container {
        margin-bottom: 0 !important;
    }

    /* ---- Title ---- */
    .elementor-element-124c409f {
        margin-bottom: 0 !important;
    }
    .elementor-element-124c409f > .elementor-widget-container {
        margin: 0 !important;
    }
    .elementor-element-124c409f .thegem-te-product-title .product-title {
        font-size: 24px !important;
        line-height: 1.25 !important;
        margin: 0 !important;
    }

    /* ---- Divider between title and price: 30px of padding was most of the
       gap here. Enough to separate, not enough to strand the price. ---- */
    .elementor-element-47a3439 {
        margin-bottom: 0 !important;
    }
    .elementor-element-47a3439 .elementor-divider {
        padding-block-start: 10px !important;
        padding-block-end: 10px !important;
    }

    /* ---- Price block, then breathing room before the options and button.
       The previous pass zeroed this and left the lower half feeling cramped. ---- */
    .elementor-element-1f73274c {
        margin-bottom: 0 !important;
    }
    .elementor-element-1f73274c > .elementor-widget-container {
        margin: 0 0 18px 0 !important;
    }

    /* ---- Add-to-cart form: separate the variation rows and the button, and
       keep the description from crowding the button. ---- */
    .elementor-element-74fd0fb1 {
        margin-bottom: 22px !important;
    }
    .single-product .thegem-te-product-add-to-cart .variations {
        margin-bottom: 14px !important;
    }
    .single-product .thegem-te-product-add-to-cart .variations td.value {
        padding-bottom: 6px !important;
    }
}
